事件的监控
ActionListener
通过匿名内部类来对接口方法重写
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
public class test1 extends JFrame{
// 通过JButton来实现建立一个按钮对象哦
JButton j = new JButton("A宝");
public test1(){
// 界面的一系列初始化啦
this.setSize(600, 800);
this.setTitle("A宝");
this.setAlwaysOnTop(true);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.setLayout(null);
// 设置这个按钮的位置和大小
j.setBounds(0,0,100,50);
// 使用匿名内部类来实现实现类对象
// 也可以创建一个实现类对象的Java文件来完成
j.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Random r = new Random();
j.setLocation(r.nextInt(500), r.nextInt(750));
}
});
// 将这个按钮要添加到对应界面模版里面去才可以看到
this.getContentPane().add(j);
// 让整个界面可视化哦
this.setVisible(true);
}
}
直接接入这个接口
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
public class jiemian extends JFrame implements ActionListener{
JButton jtb1 = new JButton("A宝");
JButton jtb2 = new JButton("Abao");
public jiemian(){
// 进行一系列的洁面初始化哦
this.setSize(600, 800);
this.setTitle("A宝");
this.setAlwaysOnTop(true);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
this.setLayout(null);
// 设置按钮的初始化坐标和位置
jtb1.setBounds(0,0,100,50);
// 这个是来监听是否有得到动作,如果有动作,那就要进入到下面的方法里面去哦
jtb1.addActionListener(this);
jtb2.setBounds(100,0,100,50);
jtb2.addActionListener(this);
// 将我们建立的按钮添加到对应界面模版里面去哦
this.getContentPane().add(jtb1);
this.getContentPane().add(jtb2);
// 实现界面图形可视化操作啦
this.setVisible(true);
}
// 这个是对我们的接口里面的方法进行重写操作啦
// 这个ActionEvent e就代表我们上面addActionListener监听到的内容哦
public void actionPerformed(ActionEvent e){
Object source = e.getSource();
if(source == jtb1){
jtb1.setSize(200,200);
}else if(source == jtb2){
Random r = new Random();
jtb2.setLocation(r.nextInt(500),r.nextInt(500));
}
}
}
MouseListener
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import org.w3c.dom.events.MouseEvent;
public class MyFRame extends JFrame implements MouseListener{
JButton j = new JButton("A宝");
public MyFRame(){
this.setSize(600, 800);
this.setTitle("A宝");
this.setAlwaysOnTop(true);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.setLayout(null);
j.setBounds(0, 0, 100, 50);
j.addMouseListener(this);
this.getContentPane().add(j);
this.setVisible(true);
}
@Override
public void mouseClicked(java.awt.event.MouseEvent e) {
System.out.println("点击");
}
@Override
public void mouseEntered(java.awt.event.MouseEvent e) {
System.out.println("移入");
Random r = new Random();
j.setLocation(r.nextInt(500), r.nextInt(600));
}
@Override
public void mouseExited(java.awt.event.MouseEvent e) {
System.out.println("离开");
}
@Override
public void mousePressed(java.awt.event.MouseEvent e) {
System.out.println("按下");
}
@Override
public void mouseReleased(java.awt.event.MouseEvent e) {
System.out.println("松开");
}
}
KeyListener
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class keylistener extends JFrame implements KeyListener{
public keylistener(){
// 界面的一系列初始化啦
this.setSize(600, 800);
this.setTitle("A宝");
this.setAlwaysOnTop(true);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.setLayout(null);
// 给整个窗体添加键盘监听
// 调用者this:本类对象,当前的界面对象,表示我要给整个界面添加监听
// addKeyListener:表示要给本界面添加键盘监听
// 参数this:当事件被触发之后,会执行本类中的对应代码
this.addKeyListener(this);
this.setVisible(true);
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("按下去");
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("松开");
}
@Override
public void keyTyped(KeyEvent e) {
System.out.println("类型");
}
}