java学习——57.按钮事件
一个类中可以有多个按钮,每个按钮都可以注册动作事件监听,那么如何区分是单击了哪个按钮呢?
Java中用getSource()方法来判断事件源。
如下列所示,有三个按钮,点击任意按钮,文本行中的文字随之而改变。
package learn;
import java.awt.*;
import java.awt.event.*;
public class ButtonEvent extends Frame implements ActionListener{
TextField t;
Button b1,b2,b3;
public ButtonEvent(){
super("按钮事件");
this.setVisible(true);
this.setLocationRelativeTo(null);
this.setSize(220, 100);
this.setLayout(new GridLayout(2,1));
Panel top=new Panel();
this.add(top,"North");
Panel center=new Panel();
this.add(center);
t=new TextField("张熹熹",20);
t.setEditable(false);
top.add(t);
b1=new Button("点我");
b1.addActionListener(this);//注册动作事件监听接口
b2=new Button("点我呀");
b2.addActionListener(this);//注册动作事件监听接口
b3=new Button("点我点我吧");
b3.addActionListener(this);//注册动作事件监听接口
center.add(b1);
center.add(b2);
center.add(b3);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});//关闭窗口
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource()==b1)//如果按下名为b1的按钮
t.setText("你好呀,小朋友 ");
if(ev.getSource()==b2)//如果按下名为b1的按钮
t.setText("欢迎来到Java的世界");
if(ev.getSource()==b3)//如果按下名为b1的按钮
t.setText("哇哈哈哈,成功了吧");
}
public static void main(String args[]){
new ButtonEvent();
}
}
其运行结果如图所示:
点击第一个按钮“点我”,文本行中的文字会修改,如图所示:
点击第二个按钮“点我呀”,文本行中的文字又会修改,如图所示:
点击第三个按钮“点我点我吧”,文本行中的文字也会被修改,如图所示:
本例主要通过事件源的getSource()方法来区分按钮,很多组件都有动作事件,均可以以此方法来区分事件源。
按钮事件到底要完成什么样的功能,根据具体程序的要求来确定,可以是打开新的窗口,可以是如本例所示修改文本行的值,也可以是其他的,这就见仁见智咯…
除了按钮外,其他的组件有些也有自己的事件,将在swing之后再慢慢介绍。