GUI之事件监听(简单的监听例子、两个按钮,实现同一个监听)
事件监听:(Listoner),事件监听都可以使用addWindowListener来做
当某个事情发生的时候,干什么?
简单的事件监听例子:
import java.util.Scanner; public class Main { public static void main(String[] args) { //按下按钮,触发一些事件 Frame fra=new Frame();//创建一个窗体 Button button=new Button();//创建一个按钮 //因为,addActionListener()需要一个ActionListener,所以我们需要构造一个ActionListener,接口就写实现类,父类就写继承 MyActionListener myActionListener =new MyActionListener(); //当做一个事件监听,要输入一个执行参数,我们要创建一个实现类去实现他的接口ActionListener,或继承他对象的父类,然后在实现类或子类中继承有方法,编写执行代码, button.addActionListener(myActionListener);//要输入一个执行参数 //将按钮放到窗体的中间 fra.add(button,BorderLayout.CENTER); //显示窗体 fra.setVisible(true); fra.pack();//让窗体使用最优布局 Closewin(fra);//关闭窗体 } //将关闭窗体的代码抽取成一个方法 public static void Closewin(Frame fra){ //配置窗口关闭的监听事件 fra.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } } //事件监听:创建一个接口的实现类,做为监听事件的参数,也可以用内部类实现 class MyActionListener implements ActionListener{ //该方法为接口的方法 public void actionPerformed(ActionListener e){ //写实现,当按钮点击是,会执行这个方法中的实现内容 System.out.println("aa"); } }
两个按钮,实现同一个监听:
public class TestActionTwo { public static void main(String[] args) { //两个按钮,实现同一个监听 //开始 停止 Frame frame =new Frame("开始-停止");//创建窗体,并命名 //创建按钮 Button button1=new Button("start");//开始 Button button1=new Button("stop");//停止 //设置按钮上的内容,可以在监听类中使用setActionCommand方法,来获取内容 //可以多个按钮只写一个监听类 button1.getActionCommand("button1-start"); //调用监听方法,传监听事件 button1.addActionListener(); button2.addActionListener(); } } //创建一个类,实现ActionListener接口,使类成为监听事件类 class MyMoinitor implements ActionListener{ public void actionPerformed(ActionEvent e){ // e.getActionCommand():获得按钮上的内容 // e.setActionCommand(); //判断,按钮上返回的值是多少 if(e.getActionCommand.equals("button1-start")){ //开始,线程的代码 }else{ //停止 线程代码 } } }