概述
事件处理
定义: Swing 组件中的事件处理专门用于响应用户的操作,例如,响应用户的单击鼠标,按下键盘等操作。
Swing 事件处理涉及的三类对象:
**事件源:**事件发生的场所,通常就是产生事件的组件,例如窗口,按钮,菜单等。
**事件对象:**封装了 GUI 组件上发生的特定事件(通常就是用户的一次操作)
**监听器:**负责监听事件源上发生的事件,并对各种事件做出相应处理的对象时象中包含事件处理器)
Swing 常用事件处理
1、窗体事件
说明:对窗体进行操作时,例如窗体的打开,关闭,激活,停用等,这些动作都属于窗体事件, Java 中提供了一个 WindowEvent 类用于表示窗体事件
使用:首先需要定义一个实现了 WindowListener接口的类作为窗体监听器,然后通过 addWindowListener() 方法将窗体对象与窗体监听器进行绑定。
//1.创建容器窗体
JFrame jf=new JFrame("窗体事件");
jf.setBounds(100, 200, 300, 400);
//为窗体(注册监听)
jf.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
System.out.println("windowOpened : 窗体打开事件");
}
@Override
public void windowIconified(WindowEvent e) {
System.out.println("windowIconified : 窗体图标化事件/最小化");
}
@Override
public void windowDeiconified(WindowEvent e) {
System.out.println("windowDeiconified : 窗体取消图标化事件/取消最小化");
}
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("windowDeactivated : 窗体停用事件");
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("windowClosing : 窗体正在关闭事件");
}
@Override
public void windowClosed(WindowEvent e) {
System.out.println("windowClosed : 窗体关闭事件");
//被执行,看不到效果
}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("windowActivated : 窗体激活事件");
}
});
2、鼠标事件
//1.创建容器窗体
JFrame jf=new JFrame("鼠标事件");
jf.setBounds(100, 200, 300, 400);
//创建按钮组件
JButton btn=new JButton("按钮");
//为事件注册鼠标监听器
btn.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("mouseReleased : 鼠标释放事件");
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("mousePressed : 鼠标被按下事件");
int button=e.getButton();
//System.out.println(button);
if(button==MouseEvent.BUTTON1) {
System.out.println("鼠标左键被点了");
}else if(button==MouseEvent.BUTTON2) {
System.out.println("鼠标滚轮被点了");
}else if(button==MouseEvent.BUTTON3){
System.out.println("鼠标右键被点了");
}
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("mouseExited : 鼠标移出按钮区域事件");
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("mouseEntered : 鼠标进入按钮区域事件");
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouseClicked : 鼠标完成点击事件");
}
});
jf.add(btn);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);;
jf.setVisible(true);
}
3、键盘事件
//1.创建容器窗体
JFrame jf=new JFrame("键盘事件");
jf.setBounds(100, 200, 300, 400);
JButton btn=new JButton("登陆");
btn.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int keyCode=e.getKeyCode();
if(keyCode==10) {
System.out.println("回车已被按下,可以登陆");
}
}
});
jf.add(btn);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);;
jf.setVisible(true);
}
private static JTextField method() {
JTextField text=new JTextField(3);
text.addKeyListener(new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
// 通过getKeyChar来获取按下的字符
char c=e.getKeyChar();
//通过getKeyCode来获取字符所对应的数值
int code=e.getKeyCode();
System.out.println("键盘按下的字符内容为:"+c);
System.out.println("键盘按下的字符代码为:"+code);
}
});
return text;
}
4、动作事件
说明:动作事件与前面三种事件有所不同,它不代表某类事件,只是表示一个动作发生,例如,在关闭一个文件时,可以通过键盘关闭,也可以通过鼠标关闭,动作事件用 ActionEvent 类表示
使用:处理动作事件的监听器对象需要实现 ActionListener 接口
//1.创建容器窗体
JFrame jf=new JFrame("动作事件");
jf.setBounds(100, 200, 300, 400);
JButton btn=new JButton("按钮");
btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("我被点击了,我是ActionListener,我也能监听点击的动作");
}
});
jf.add(btn);
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);;
jf.setVisible(true);
}
最后
以上就是生动店员为你收集整理的Swing常用事件处理的全部内容,希望文章能够帮你解决Swing常用事件处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复