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 {
@Override
public 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() {
@Override
public 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 {
//放在成员位置,因为后面都会用上这两个对象
//创建按钮对象1
JButton jButton1 = new JButton("再点我呀");
//创建按钮对象2
JButton 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);
}
@Override
public 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();
}
}