ActionListener
public class Test3 {public static void main(String[] args){JFrame jFrame = new JFrame();//设置界面的宽高jFrame.setSize(603,680);//设置界面标题jFrame.setTitle("事件演示");//设置界面置顶jFrame.setAlwaysOnTop(true);//设置界面居中jFrame.setLocationRelativeTo(null);//设置关闭模式jFrame.setDefaultCloseOperation(3);//取消组件居中放置jFrame.setLayout(null);//创建按钮对象JButton jButton = new JButton("点我呀");//设置位置和坐标jButton.setBounds(0,0,100,50);//给按钮添加监听动作//jButton:组件对象,表示你要给哪个组件添加事件//addActionListener:表示我要给组件添加哪个事件监听(动作监听鼠标左键单击,空格)//参数:表示事件被触发之后要执行的代码jButton.addActionListener(new MyActionListener());//把按钮添加到界面中(添加到隐形容器中)jFrame.getContentPane().add(jButton);jFrame.setVisible(true);
}
}
package test;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class MyActionListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("按钮被点击了");}
}
用匿名内部类方法简化
public class Test3 {public static void main(String[] args){JFrame jFrame = new JFrame();//设置界面的宽高jFrame.setSize(603,680);//设置界面标题jFrame.setTitle("事件演示");//设置界面置顶jFrame.setAlwaysOnTop(true);//设置界面居中jFrame.setLocationRelativeTo(null);//设置关闭模式jFrame.setDefaultCloseOperation(3);//取消组件居中放置jFrame.setLayout(null);//创建按钮对象JButton jButton = new JButton("点我呀");//设置位置和坐标jButton.setBounds(0,0,100,50);/*//给按钮添加监听动作//jButton:组件对象,表示你要给哪个组件添加事件//addActionListener:表示我要给组件添加哪个事件监听(动作监听鼠标左键单击,空格)//参数:表示事件被触发之后要执行的代码jButton.addActionListener(new MyActionListener());//把按钮添加到界面中(添加到隐形容器中)jFrame.getContentPane().add(jButton);*///匿名内部类方法简化代码//匿名内部类对象//避免重新写一个新类jButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("buyaodianwo");}});//把按钮添加到界面中(添加到隐形容器中)jFrame.getContentPane().add(jButton);jFrame.setVisible(true);
}
}
另一种方法,通过this调用本类方法
package test;import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;public class MyJFrame extends JFrame implements ActionListener {//放在成员位置,因为后面都会用上这两个对象//创建按钮对象1JButton jButton1 = new JButton("再点我呀");//创建按钮对象2JButton jButton2 = new JButton("再点我呀");public MyJFrame(){//设置界面的宽高this.setSize(603,680);//设置界面标题this.setTitle("事件演示");//设置界面置顶this.setAlwaysOnTop(true);//设置界面居中this.setLocationRelativeTo(null);//设置关闭模式this.setDefaultCloseOperation(3);//取消组件居中放置this.setLayout(null);//设置位置和坐标jButton1.setBounds(0,0,100,50);//添加行为(this触发本类中的代码)jButton1.addActionListener(this);//设置位置和坐标jButton2.setBounds(100,0,100,50);//添加行为(this触发本类中的代码)jButton2.addActionListener(this);//把按钮添加到整个界面中去this.getContentPane().add(jButton1);this.getContentPane().add(jButton2);//将界面显示出来this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {//对当前按钮进行操作//获取当前被操作的那个按钮的对象//父类对象Object source = e.getSource();if (source==jButton1){jButton1.setSize(200,200);}else if (source==jButton2){Random r = new Random();jButton2.setLocation(r.nextInt(500),r.nextInt(500));}}
}
package test;public class Test4 {public static void main(String[] args){new MyJFrame();}
}