可以被组件识别的操作。
事件源:按钮、图片、窗体.....
事件:某些操作
如:鼠标单击、鼠标划入....
绑定监听:当事件源上发生了某个事件,则执行某段代码
ActionListener:
package Puzzlegame.com.wxj.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("按钮被点击了");
}
}
package Puzzlegame.com.wxj.test;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.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(WindowConstants.EXIT_ON_CLOSE);
jFrame.setLayout(null);
//创建一个按钮对象
JButton jtb=new JButton("点我呀");
//设置位置和宽高
jtb.setBounds(0,0,100,50);
//给按钮添加动作监听
//jtb:组件对象,表示你要给哪个组件添加事件
//addActionListener:表示我要给组件添加哪个事件监听(动作监听包含鼠标左键点击,空格)
//参数:表示事件被触发之后要执行的代码
jtb.addActionListener(new MyActionListener());
/*jtb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("达咩~不要点我哟~");
}
});*/
//把按钮添加到界面当中
jFrame.getContentPane().add(jtb);
jFrame.setVisible(true);
}
}
package Puzzlegame.com.wxj.test;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.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(WindowConstants.EXIT_ON_CLOSE);
jFrame.setLayout(null);
//创建一个按钮对象
JButton jtb=new JButton("点我呀");
//设置位置和宽高
jtb.setBounds(0,0,100,50);
//给按钮添加动作监听
//jtb:组件对象,表示你要给哪个组件添加事件
//addActionListener:表示我要给组件添加哪个事件监听(动作监听包含鼠标左键点击,空格)
//参数:表示事件被触发之后要执行的代码
//jtb.addActionListener(new MyActionListener());
jtb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("达咩~不要点我哟~");
}
});
//把按钮添加到界面当中
jFrame.getContentPane().add(jtb);
jFrame.setVisible(true);
}
}
package Puzzlegame.com.wxj.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 {
//创建一个按钮对象
JButton jtb1=new JButton("点我呀");
JButton jtb2=new JButton("再点我呀");
public MyJFrame() {
//设置界面的宽高
this.setSize(603,680);
//设置界面的标题
this.setTitle("拼图单机版 V1.0");
//设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置游戏的关闭模式
this.setDefaultCloseOperation(3);
//取消默认的居中放置,只有取消了才能按照xy轴的形式添加组件
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);
}
@Override
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));
}
}
}
package Puzzlegame.com.wxj.test;
public class Test4 {
public static void main(String[] args) {
new MyJFrame();
}
}
MouseListener:
package Puzzlegame.com.wxj.test;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
public class MyJFrame2 extends JFrame implements MouseListener {
//创建一个按钮对象
JButton jtb1=new JButton("点我呀");
public MyJFrame2() {
//设置界面的宽高
this.setSize(603,680);
//设置界面的标题
this.setTitle("拼图单机版 V1.0");
//设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置游戏的关闭模式
this.setDefaultCloseOperation(3);
//取消默认的居中放置,只有取消了才能按照xy轴的形式添加组件
this.setLayout(null);
//设置位置和宽高
jtb1.setBounds(0,0,100,50);
//给按钮绑定鼠标事件
jtb1.addMouseListener(this);
this.getContentPane().add(jtb1);
this.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("单击");
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("按下不松");
}
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("松开");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("划入");
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("划出");
}
}
package Puzzlegame.com.wxj.test;
public class Test4 {
public static void main(String[] args) {
new MyJFrame2();
}
}
KeyListener:
package Puzzlegame.com.wxj.test;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MyJFrame3 extends JFrame implements KeyListener {
public MyJFrame3() {
//设置界面的宽高
this.setSize(603, 680);
//设置界面的标题
this.setTitle("拼图单机版 V1.0");
//设置界面置顶
this.setAlwaysOnTop(true);
//设置界面居中
this.setLocationRelativeTo(null);
//设置游戏的关闭模式
this.setDefaultCloseOperation(3);
//取消默认的居中放置,只有取消了才能按照xy轴的形式添加组件
this.setLayout(null);
//快捷键
//给整个窗体添加键盘监听
this.addKeyListener(this);
this.setVisible(true);
}
@Override
public void keyTyped(KeyEvent e) {
System.out.println("");
}
//细节1
//如果我们按下一个按键没有松开,那么会重复调用
@Override
public void keyPressed(KeyEvent e) {
System.out.println("按下不松");
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("松开");
//获取键盘上每一个按键的编号
int code=e.getKeyCode();
if(code ==65){
System.out.println("现在按下的是A");
}else if(code ==66){
System.out.println("现在按下的是B");
}
}
}package Puzzlegame.com.wxj.test;
public class Test4 {
public static void main(String[] args) {
new MyJFrame3();
}
}