java怎样注册监听

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:26:09
//麻烦给看一下 激活组件 谢谢
import java.awt.*;

import java.awt.event.*;

public class a01 implements ActionListener {

public static void main(String[] args)
{

jdm();

}

public static void jdm ()
{

Panel d; //控制组件

Frame f=new Frame("矿质营养诊断系统");
f.setLayout(new GridLayout(4,1,20,20));

d=new Panel();

d.setLayout(new FlowLayout());

Button b1=new Button(" 结果 ");
d.add(b1);

//D1.addActionListener(new Listener());
b1.addActionListener();

Button D2=new Button(" 存盘 ");
d.add(D2);
f.add(d);

f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

f.setLocation(200,100);
f.setSize(800,600);

f.setVisible(true);

}

如果我没记错的话,当你采用实现ActionListener接口的方式添加AcitonListener时。
b1.addActionListener();
应该修改为:
b1.addActionListener(this);

我晕,你这个jdm()不能是static,static方法里不能使用实例,所以不能使用this关键字。this表示当前实例,而static方法不属于任何实例,只属于这个类,所有这个类的实例都共享一个副本。

你要修改一下,把jdm()的static去掉。
然后把main()再改一下,因为main()是static不能直接调用非静态的方法。
所以改成
public static void main(String[] args){
a01 a=new a01();
a.jdm();
}