[size=x-large][color=red]看了你问的问题,感觉你的JAVA基础还是很薄弱的.
首先,回答你第一个问题,在java中,有两个变量名,this and super,就像JS中也有这样的,this.在JS中JS指的是onclick所在的这个控件吧.而在Java中,this指的是当前对象.super指的示的是父类.
其次,你要明面JButton的addActionListener方法的参数是一个ActionListener接口类型的.这就是说任何继承ActionListener的类都可以做为参数传进来.
最后,那么在继承一个接口之后,JAVA语言规定,必须实现ActionListener的所有方法.那么你就根据ActionListener的定义,实现它的public void actionPerformed(ActionEvent e);方法.[/color][/size]下面是给出的代码(JDK1.5运行通过的):
这是你第一种方法实现.
[code="java"]
package com.Test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/*
- created time:下午11:48:11
-
creator: Tian Zhichao (chinoistzc@gmail.com)
*
/
public class MyFrame extends JFrame implements ActionListener {
JButton btn = new JButton("点我");
/*
- main()
- 2010-4-8,下午11:48:11
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyFrame frm = new MyFrame();
frm.btn.addActionListener(frm);
frm.add(frm.btn);
frm.setSize(200, 400);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog((JButton)e.getSource(), "有效果!");
}
}
[/code]
这是你第二种方法实现:
[code="java"]package com.Test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/*
}[/code]
[size=x-large][color=red]希望对你有所帮助[/color][/size]