基本概念问题。如果你 implements ActionListener 了就要实现这个接口的所有方法,但是你却是在addActionListener时又new ActionListener() 了一人新的实例,所以结构就不对了。所以我只能说程序不是那样写的。你可以用jbuilder生成一个框架来看一下。整个结构,一个JFrame一个主程序类等等。
解决方案 »
- java String 长度如何计算的
- 要用POI操作excel表,POI包在放在jdk目录的哪个位置
- [50分赠一人]关于JTable的简单问题,在线等
- 关于重写JPanel的paint方法的问题,麻烦大家看看。
- 怎样将JPanel置空?
- JBuilder5不支持此程序,不知道什么原因,请各位哥哥姐姐多多指教,不胜感激!!!
- 扩展一个按钮,或者说扩展一个组件,需要铺盖什么方法,在线等候,谢谢
- ResultSet的简单问题,在线等,第一个对的全部给分
- 用java做了个系统,速度可以大大提高。
- 请教有经验的开发者一个有关实体bean的问题!
- 都说《Tinking in Java》翻译的很烂,那《Java核心技术》呢?
- 我连接ACCESS数据库出现了问题?
2、
b1.addActionListener(this);
加方法
public void actionPerformed(java.awt.event.ActionEvent e)
supershot给出的方法仍会有问题的。你注意到他的程序只有一个main方法吗?这是一个静态方法,frame在这个方法里的一个局部变量而已,这种结构不好改的。所以我才说结构有问题了。
1、你的类应该是一个public类,但你没有写public 关键字;
2、类名是b1,为什么一个JButton的实例也叫b1?
3、你的类要implements ActionListener,为什么不提供actionPerformed方法?
4、你在JButton b1的addActionListener()方法内定义了一个匿名内部类,该内部
类的actionPerformed方法内直接调用了b1变量,这是不允许的,除非你把JButton b1
变量定义为final的。唉,好好看看书吧!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class b1 //implements ActionListener
{
JButton b1;
public static void main(String[] args)
{
b1 b= new b1();
}
b1(){
JFrame frame = new JFrame("ButtonDemo");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
b1 =new JButton("bbbb"); b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { b1.setEnabled(false);
}
});
frame.getContentPane().add(b1, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}