关于内部类的错误!我块疯了!大家要救我! 类可以为private吗?我怎么记得只有默认和public。另外看报错的情况,可能import有问题。cast也有问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.*;import javax.swing.*;import javax.swing.event.*;import java.awt.event.*;public class A { public static void main(String[] args) { CheckBoxFrame frame=new CheckBoxFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); }}class CheckBoxFrame extends JFrame{ public CheckBoxFrame() { setTitle("sshc625"); setSize(WIDTH,HIGHT); Container contentPane=getContentPane(); JPanel panel=new JPanel(); bold=new JCheckBox("Bold"); CheckBoxAction listener=new CheckBoxAction(); bold.addActionListener(listener); panel.add(bold); italic=new JCheckBox("Italic"); italic.addActionListener(listener); panel.add(italic); label=new JLabel("If I were a boy again!"); label.setFont(new Font("Serif",Font.PLAIN,FONTSIZE)); contentPane.add(label,BorderLayout.CENTER); contentPane.add(panel,BorderLayout.SOUTH); } public static final int WIDTH=400; public static final int HIGHT=200; private JCheckBox bold; private JCheckBox italic; private JLabel label; private static final int FONTSIZE=12; private class CheckBoxAction implements ActionListener //报错在这里! { public void actionPerformed(ActionEvent event) { int mode=0; if(bold.isSelected()) mode+=Font.BOLD; if(italic.isSelected()) mode+=Font.ITALIC; } }}抽象类可以有实例,但是不能直接实例化ActionListener,不能new ActionListener();局部变量在使用时要提前申明。 我倒,ActionListener是个接口,怎么能生成对象啊,狂晕 接口不可以实例化,正确的为对CheckBoxAction listener=new CheckBoxAction(); new AcionListener { .... .... ....}写在这里面就行了! 1、import java.awt.event.*;2、CheckBoxAction listener = new ActionListener();应为:CheckBoxAction listener = new CheckBoxAction();且放在构造方法第一行 kypfos(中国,怎么啦!) , lifeng1214(霹雳风) , hyhu(先飞笨鸟) pxboy(阿土仔)都能解决你的问题。 内部类:1.如果内部类不是static的,则需要在包裹类的构造基础上来构造。2.如果是static的,则象平常一样构造就行了。至于上面的一大堆错误,应该还有其他的问题,可参看api。 内部类没有任何问题,主要就是一个语句CheckBoxAction listener=new ActionListener();你可以改写成ActionListenner listenner=new CheckBoxAction();而且位置要提前,在你要用到listenner之前实例化 CheckBoxAction listener=new CheckBoxAction(); 内部类没有任何问题,主要就是一个语句CheckBoxAction listener=new ActionListener();你可以改写成ActionListenner listenner=new CheckBoxAction();而且位置要提前,在你要用到listenner之前实例化 为什么能用HashSet不能用Set 请帮忙解释一下,这个 JAVA 语句的 意思,谢谢 打包成jar后不能联网 用过ASM的朋友请进! Java解压指定文件... ClassLoader的难题?高手请进来。 请高手指点一下,谢谢! 难得找到一个JAVA编写的回文法问题 下午要面试java程序员,考官可能会问些什么问题?(急!) 在JAVA中的批处理文件怎么写? 研究单例对象碰到的问题,高手救命 java 如何得到 当前程序所在的函数名? 谢谢
import javax.swing.*;
import javax.swing.event.*;import java.awt.event.*;public class A
{
public static void main(String[] args)
{
CheckBoxFrame frame=new CheckBoxFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class CheckBoxFrame extends JFrame
{
public CheckBoxFrame()
{
setTitle("sshc625");
setSize(WIDTH,HIGHT);
Container contentPane=getContentPane();
JPanel panel=new JPanel();
bold=new JCheckBox("Bold");
CheckBoxAction listener=new CheckBoxAction();
bold.addActionListener(listener);
panel.add(bold);
italic=new JCheckBox("Italic");
italic.addActionListener(listener);
panel.add(italic);
label=new JLabel("If I were a boy again!");
label.setFont(new Font("Serif",Font.PLAIN,FONTSIZE));
contentPane.add(label,BorderLayout.CENTER);
contentPane.add(panel,BorderLayout.SOUTH);
}
public static final int WIDTH=400;
public static final int HIGHT=200;
private JCheckBox bold;
private JCheckBox italic;
private JLabel label;
private static final int FONTSIZE=12;
private class CheckBoxAction implements ActionListener //报错在这里!
{
public void actionPerformed(ActionEvent event)
{
int mode=0;
if(bold.isSelected())
mode+=Font.BOLD;
if(italic.isSelected())
mode+=Font.ITALIC;
}
}
}
抽象类可以有实例,但是不能直接实例化ActionListener,不能new ActionListener();
局部变量在使用时要提前申明。
....
....
....
}
写在这里面就行了!
import java.awt.event.*;2、
CheckBoxAction listener = new ActionListener();
应为:
CheckBoxAction listener = new CheckBoxAction();
且放在构造方法第一行
1.如果内部类不是static的,则需要在包裹类的构造基础上来构造。
2.如果是static的,则象平常一样构造就行了。至于上面的一大堆错误,应该还有其他的问题,可参看api。
CheckBoxAction listener=new ActionListener();
你可以改写成ActionListenner listenner=new CheckBoxAction();
而且位置要提前,在你要用到listenner之前实例化
CheckBoxAction listener=new ActionListener();
你可以改写成ActionListenner listenner=new CheckBoxAction();
而且位置要提前,在你要用到listenner之前实例化