监听
javaSwing的事件监听
## 基本概念
# 事件源:产生事件的源头 (按钮等界面组件)
# 事件:发生了什么事情 (按钮被点击事件,按下 释放 进入 出来)
# 监听器:监测目标的对象(录音笔 摄像头)
# 事件的处理:当事件被监听器发现后,要处理的内容(逻辑代码)
## 窗口监听(监听JFrame)
# 窗口监听接口名:WindowListener
# 实现监听流程
# 自己写个类去实现窗口监听接口 implements
# 必须重写接口中所有的抽象方法
# 在适当的位置创建监听对象 (管理类)
# 在适当的位置给某个窗口添加窗口监听 (管理类)
# 案例:监听窗口正在点击关闭时,弹窗显示是否关闭
# 监听的方法是windowClosing
# 准备:设置窗口默认的关闭方式为 不做任何动作
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
# 在正在关闭的方法中编写
// 弹窗展示 是否真的关闭
int key = JOptionPane.showConfirmDialog(null, "真的要关闭吗?");
// 只要判断点击的是 确定
if(key == JOptionPane.OK_OPTION) {
// 结束java程序
System.exit(0);
}
## 鼠标监听(除了JFrame之外)
# 监听接口名: MouseListener
# 实现监听流程
# 自己写个类去实现鼠标监听接口
# 重写接口中所有的抽象方法(选择需要的方法进行逻辑代码编写)
# 在适当的位置创建鼠标监听对象
# 在适当的位置给某个按钮添加鼠标监听
# 案例:鼠标进入按钮,窗口变色
# frame.getContentPane().setBackground(Color.RED);
# 注意:监听类要获取窗口的对象,无法从本方法进行传参
可以从本类的构造方法传参
private LoginFrame frame;
public ToRegBtnListener( LoginFrame frame ) {
this.frame = frame;
}
后续所有重写的方法都能使用这个对象,并且这个对象时同一个
在管理类创建监听对象时,将上面的窗口对象传入构造方法中
# 案例:窗口的跳转
# 两个窗口已经在管理类中创建出来了
# 本质上只是让一个窗口显示,一个窗口隐藏
# 要求监听需要在构造方法处传两个窗口的对象进来
## 菜单栏的构建
- 菜单栏类名 JMenuBar (1个)
- 菜单类名 JMenu (多个)
- 菜单项类名 JMenuItem (多个)
# 组装
将菜单项添加给菜单
menuFile.add(itemCreate);
menuFile.add(itemSave);
menuFile.add(itemExit);
# 注意:添加顺序就是展示顺序,同一个菜单项只能加给一个菜单
将菜单 添加给 菜单栏
loginBar.add(menuFile);
loginBar.add(menuEdit);
loginBar.add(menuSearch);
# 注意:添加顺序就是展示顺序
将菜单栏设置给窗口
this.setJMenuBar(loginBar);
## 弹窗
# 弹出带选项的弹窗
JOptionPane.showConfirmDialog(父级对象,信息);
# 普通提示弹窗
JOptionPane.showMessageDialog(父级对象,信息);