swing 监听器常用方法
java Swing事件监听器
动作事件监听器ActionListener
- 添加/删除方法 addActionListener()、removeActionListener()
- 接口代码实现:
public class DrawListenerFather implements ActionListener{
//发生动作(按钮被单击、列表框中选择一项)时调用。
@Override
public void actionPerformed(ActionEvent e) {
//具体代码
System.out.println(e.getActionCommand()+"被单击了");
}
}
ActionEvent常用的方法:
e.getActionCommand(); //获取按钮上的字符串;
JButton btn = (JButton) e.getSource();//获取触发此次事件的组件对象,返回值为Object类型
color = btn.getBackground();//获取按钮上的颜色;
鼠标事件监听器MouseListener, MouseMotionListener
-
添加/删除方法 addMouseMotionListener()/removeMouseMotionListener(dl);
addMouseListener()/removeMouseListener() -
接口代码实现:
//前5个方法为MouseListener接口的抽象方法
public class DrawListenerFather implements MouseListener, MouseMotionListener {
//鼠标点击组件时触发(按下并释放)
@Override
public void mouseClicked(MouseEvent e) {
}
//鼠标按压组件时触发
@Override
public void mousePressed(MouseEvent e) {
}
//鼠标松开组件时触发
@Override
public void mouseReleased(MouseEvent e) {
}
//鼠标进入组件时触发
@Override
public void mouseEntered(MouseEvent e) {
}
//鼠标离开组件时触发
@Override
public void mouseExited(MouseEvent e) {
}
//鼠标在组件中拖拽时触发
@Override
public void mouseDragged(MouseEvent e) {
}
//鼠标在组件中移动时触发
@Override
public void mouseMoved(MouseEvent e) {
}
}
MouseEvent常用的方法:
if(e.getButton==3){//用于流程判断
//鼠标点击了右键时e.getButton==3
//鼠标点击了左键键时e.getButton==1
//鼠标点击了滚轮键时e.getButton==2
}
int x = e.getX(); // 获取当前鼠标的x坐标
int y = e.getY(); //获取当前鼠标的y坐标
键盘事件监听器KeyListener
由于画图板项目并未涉及到键盘事件监听器,此处省略,日后补充。
监听ChangeEvents的ChangeListener
- 在画图板项目中,滑动条滑动时触发
- 添加/删除方法:addChangeListener();/removeChangeListener();
- 接口接口实现:
public class DrawListenerFather implements ChangeListener {
//滑动条滑动时触发
@Override
public void stateChanged(ChangeEvent e) {
//具体代码
}
}
ChangeEvent常用的方法:
JSlider jSlider = (JSlider)e.getSource(); //获取触发此次事件的组件对象,返回值为Object类型
String s = jSlider.getToolTipText(); //获取滑动条的名字
multiple = jSlider.getValue(); //读取滑动条当前的数值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)