1:事件的概念
Java中的事件怎么来说呢,其实就是图形用户界面中发生变化时创建的对象。如点击一个按钮会触发事件,是的它做出一些操作,创建相关的事件对象。
2:事件的演示
统一的测试类:
public class test {
public static void main(String[] args) {
new game_jframe();
}
}
(1)动作监听
动作监听需要使用到的是要使用到ActionListener这个类,这个类接受的参数是接口型的,所以implements后还需要重写方法。具体如下:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
public class game_jframe extends JFrame implements ActionListener{
public game_jframe() {
this.setSize(800,800);
this.setTitle("练习");
this.setAlwaysOnTop(true);//置顶
this.setLocationRelativeTo(null);
this.setLayout(null);//取消默认排列
JButton j1=new JButton("按钮1");
j1.setBounds(30,30,100,100);
j1.addActionListener(this);//添加动作监听
this.getContentPane().add(j1);
this.setVisible(true);//可视化
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("点击成功");
}
}
点击的按钮也是可以获取的,具体如下操作,判断点击的按钮是按钮1还是按钮2
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
public class game_jframe extends JFrame implements ActionListener{
JButton j1=new JButton("按钮1");
JButton j2=new JButton("按钮2");
public game_jframe() {
this.setSize(800,800);
this.setTitle("练习");
this.setAlwaysOnTop(true);//置顶
this.setLocationRelativeTo(null);
this.setLayout(null);//取消默认排列
j1.setBounds(30,30,100,100);
j1.addActionListener(this);//添加动作监听
j2.setBounds(300,300,200,200);
j2.addActionListener(this);
this.getContentPane().add(j1);
this.getContentPane().add(j2);
this.setVisible(true);//可视化
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object s=e.getSource();//获取点击的按钮
if(s==j1) {
System.out.println("点击的是按钮1");
}
else if(s==j2) {
System.out.println("点击的是按钮2");
}
}
}
(2)鼠标监听
鼠标监听总的来说分为五个部分
1:划入
2:单击
3:按住不放
4:松开
5:划出
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
public class game_jframe extends JFrame implements MouseListener{
public game_jframe() {
this.setTitle("练习");
this.setSize(800,800);
//this.setAlwaysOnTop(true);
this.setLocationRelativeTo(null);
this.setLayout(null);
JButton j1=new JButton("按钮");
j1.setBounds(100,100,150,50);
this.getContentPane().add(j1);
j1.addMouseListener(this);
this.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("单击");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("按住不松");
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("松开");
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("划入");
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("划出");
}
}
(3)键盘监听
对于键盘输入的数据进行判断,键盘的按入都会都会有一个编号进行标志,比如a就是65.不过要注意这里的65并不是ASCII哦
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
public class game_jframe extends JFrame implements KeyListener{
public game_jframe() {
this.setSize(800,800);
this.setTitle("练习");
this.setDefaultCloseOperation(3);
this.setLayout(null);
this.addKeyListener(this);
this.setVisible(true);
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
int code=e.getKeyCode();
if(code==65) {
System.out.println("按的是a");
}
else if(code==66) {
System.out.println("按的是b");
}
else if(code==67) {
System.out.println("按的是c");
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}