JAVA的Swing事件监听机制

更新时间:2023-06-18 08:48:53 阅读: 评论:0

JAVA的Swing事件监听机制
⽂章⽬录
Swing事件模型
Swing 事件模型由三个部分组成:事件源,事件和监听程序。
事件源即触发事件的操作的组件,如键盘输⼊,⿏标点击,点击按钮等。事件源触发事件,事件被监听器监听并处理。
事件监听器是⼀个“实现特定类型监听器接⼝”的类对象,事件是某⼀种事件类的对象,事件源根据⽤户的操作创建对应的事件类的对象。例如按钮(JButton)事件源创建动作事件对象(ActionEvent)。在监听器的类中实现相应的事件监听器接⼝,最后事件源再调⽤事件监听器对象中⽅法来完成对事件的处理。
常见事件及对应监听器
常见的Swing事件有⿏标事件(MouEvent),键盘事件(KeyEvent),动作事件(ActionEvent),对应的监听器为⿏标监听器(MouListener)、键盘监听器(KeyListener)、动作监听器(ActionListener)。
这些监听器接⼝都包含在java.awt.event包中。
⿏标监听器
⿏标监听器的声明如下:
package java.awt.event;
import java.util.EventListener;
public interface MouListener extends EventListener {
public void mouClicked(MouEvent e);
//⿏标点击⽅法
public void mouPresd(MouEvent e);
//⿏标按住⽅法
public void mouRelead(MouEvent e);
/
/⿏标释放⽅法
public void mouEntered(MouEvent e);
//⿏标进⼊⽅法
public void mouExited(MouEvent e);
//⿏标退出⽅法
}
将⼀个类实现⿏标监听器接⼝,在类中重写这些⿏标监听器⽅法,就可以处理对应的⿏标事件。
public void mouClicked(MouEvent e) {
System.out.println(flag);
if(flag == 1)
{
x1 = e.getX();
y1 = e.getY();
g.drawOval(x1,y1,50,30);
}
if(flag == 2)
{
x2 = e.getX();
y2 = e.getY();
g.drawRect(x2,y2,40,30);
}
如重写mouClicked(MouEvent)⽅法这段代码可以在⿏标点击的地⽅绘图。
动作监听器
动作监听器的声明如下:
public interface ActionListener extends EventListener {
public void actionPerformed(ActionEvent e);
}
动作事件在点击Jbutton类的按钮时发⽣。
听潮public void actionPerformed(ActionEvent e) {
ActionCommand()=="Oval")
{
flag = 1;
三大改造的内容System.out.println(flag);
}
ActionCommand()=="Rectangle")
{
林黛玉葬花吟全诗flag = 2;
System.out.println(flag);
}
}
这段代码判断了点击的到底是添加同⼀个监听器的不同按钮中的哪⼀个。
如何使⽤监听器
上述的这些监听器本质都是接⼝类,在使⽤时我们⾸先要创建⼀个类来实现这些接⼝,然后创建⼀个该类的对象,将其添加到需要监听的对象上即可完成监听。
public class DButtonlistener implements ActionListener,MouListener{
private Graphics g;
private int x1,y1,x2,y2,flag;
public DButtonlistener(Graphics g)
{
this.g = g;
}
public void actionPerformed(ActionEvent e) {
ActionCommand()=="Oval")西藏英语
{
flag = 1;
System.out.println(flag);
}
ActionCommand()=="Rectangle")
{
flag = 2;
System.out.println(flag);
}
}
public void mouClicked(MouEvent e) {
System.out.println(flag);
if(flag == 1)
{
微博网名
x1 = e.getX();
y1 = e.getY();
g.drawOval(x1,y1,50,30);
眼镜蛇毒}
if(flag == 2)
{
红楼梦全部歌曲x2 = e.getX();
y2 = e.getY();
g.drawRect(x2,y2,40,30);
}
}
public void mouRelead(MouEvent e) {
}
public void mouPresd(MouEvent e) {
}
public void mouEntered(MouEvent e) {
}
public void mouExited(MouEvent e) {
}
}
public class BoardFrame {
JButton oval = new JButton("oval");
JButton rect = new JButton("rect");
DButtonlistener dbl = new DButtonlistener(g);
Bframe.addMouListener(dbl);
oval.addActionListener(dbl);
rect.addActionListener(dbl);《已亥杂诗》
}
⾸先创建了⼀个 DButtonlistener类,让其实现动作监听器和⿏标监听器接⼝,在该类中重写接⼝⽅法。
然后⽤Swing对象⾃带的添加监听器的⽅法addMouListener(MouListener )和addActionListener(ActionListener )添加已经创建的实现了监听器接⼝的对象即可。

本文发布于:2023-06-18 08:48:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1043766.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:事件   监听器   对象   实现   点击   监听   动作
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图