Java监听器用法

一、监听器

  • 窗体 面板:

  • 鼠标监听

  • 按钮 菜单

  • 动作监听器

  • 滑杆

  • 状态改变监听器

  • 窗体程序:

  • 键盘监听器 : 界面上有其他的组件,考虑将焦点设置到主窗体上

二、事件对象

  • 每个重写的方法中都带有一个参数**Event

  • 当我们在界面上发生一系列事情时,系统底层会将事情的相关信息打包传入方法中

  • 每个参数事件对象都可以用来获取当前事件的信息:

  • ActionEvent: 获取按钮 菜单上的文字 以及 按钮 菜单的对象引用

  • MouseEvent: 获取 鼠标操作时的坐标,左键 右键 中健 点击次数

  • KeyEvent: 获取键盘按下时的 按键信息

  • ChangeEvent: 获取滑杆的具体数值

三、监听器使用步骤:

1:创建一个类实现监听器

2: 实现重写接口中所有的方法

3:在界面类中创建监听类的对象

4:所有的组件调用各自对应的监听器添加方法添加这个对象

四、不同监听器的实际应用

  1. 键盘监听器(KeyListener)

  • 运行效果:

  • 界面的焦点问题:

当“监听器”界面加入了两个按钮之后,发现按下空格并不会弹出弹窗,而是按钮有反应,原因是界面的焦点在按钮上,焦点会自动锁定

设置焦点:

UIListener中的代码:

运行效果:

2.滑杆的使用:

  • 添加滑杆并给滑杆添加监听器:

  • 为了更加直观这里我输出了获取滑杆的数据

在移动滑杆的时候就能看到输出了滑杆的数据,在变化

  1. 用滑杆画图:

  • 引入画笔

  • 在监听器内引用传递

  • 在ChangeListener中画圆

注:这里的e.getSource获取的是一个Object类型的对象,需要转成滑杆类型(JSlider)才可以调用getValue。

运行效果:(要滑动滑杆)

改变数值会有不同的效果:

  • 用滑杆设置颜色:

运行效果:

3.菜单

运行效果:(点开菜单1会有菜单项1)

  • 模仿电脑程序:按下右键出菜单:

运行效果:

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java 中使用监听事件的方法有很多,这里介绍其中两种常用的方法: 1. 使用内部类实现监听器 使用内部类来实现监听器Java 中最常见的方法之一。在这种方法中,我们可以在事件源类中定义一个内部类,该内部类实现事件监听器接口,然后将其实例注册到事件源中。当事件发生时,事件源会调用该内部类的方法来响应事件。 举个例子,假设我们有一个按钮类,我们要在按钮上添加一个监听器,当用户单击按钮时,会触发事件。我们可以使用下面的代码来实现: ```java import java.awt.*; import java.awt.event.*; public class ButtonExample { private Frame mainFrame; private Button btn; public ButtonExample(){ prepareGUI(); } public static void main(String[] args){ ButtonExample be = new ButtonExample(); be.showEventDemo(); } private void prepareGUI(){ mainFrame = new Frame("Java Button Example"); mainFrame.setSize(300,150); mainFrame.setLayout(new FlowLayout()); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); btn = new Button("Click me!"); mainFrame.add(btn); mainFrame.setVisible(true); } private void showEventDemo(){ // 使用内部类来实现 ActionListener 接口 class ButtonClickListener implements ActionListener{ public void actionPerformed(ActionEvent e) { System.out.println("Button clicked!"); } } btn.addActionListener(new ButtonClickListener()); } } ``` 在这个示例中,我们定义了一个内部类 ButtonClickListener,该类实现了 ActionListener 接口。在 showEventDemo() 方法中,我们将一个 ButtonClickListener 类型的实例注册到按钮中,当用户单击按钮时,ButtonClickListener 类的 actionPerformed() 方法就会被调用。 2. 使用 Lambda 表达式实现监听器 Java 8 引入了 Lambda 表达式,使得代码变得更加简洁和易读。Lambda 表达式可以用来实现事件监听器,可以将其视为匿名类的一种简化形式。 举个例子,我们可以使用 Lambda 表达式来实现上面的示例,代码如下: ```java import java.awt.*; import java.awt.event.*; public class ButtonExample { private Frame mainFrame; private Button btn; public ButtonExample(){ prepareGUI(); } public static void main(String[] args){ ButtonExample be = new ButtonExample(); be.showEventDemo(); } private void prepareGUI(){ mainFrame = new Frame("Java Button Example"); mainFrame.setSize(300,150); mainFrame.setLayout(new FlowLayout()); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); btn = new Button("Click me!"); mainFrame.add(btn); mainFrame.setVisible(true); } private void showEventDemo(){ // 使用 Lambda 表达式来实现 ActionListener 接口 btn.addActionListener(e -> System.out.println("Button clicked!")); } } ``` 在这个示例中,我们使用 Lambda 表达式来实现 ActionListener 接口,可以更加简洁地处理事件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值