Java GUI事件处理及添加对话框实现方式

 更新时间:2026年02月04日 09:45:31   作者:小俱的一步步  
文章介绍了Java中事件处理的基本概念和实现方法,包括事件源、事件对象、监听器以及不同类型的事件处理,如按钮点击、鼠标、键盘和窗口事件,还提供了使用JOptionPane进行对话框操作的示例

事件处理

在窗口添加好面板和组件之后,但只是一个界面,不能执行其中的功能,需要添加事件处理来实现相应的功能。用户与GUI组件进行交互就会发生事件,如:按下一个按钮、用键盘输入一个字符、点击鼠标等。

Java中,事件处理的基本思路:

  • 一个源(事件源)产生一个事件(事件对象)并把它送到监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件;
  • 一个事件源必须注册监听器以便监听器可以接受关于一个特定事件的通知。

1.按钮点击事件

例如向按钮1添加点击事件:

jButton1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("点击登录");
            }
        });

2.鼠标事件

向按钮2添加鼠标事件:

jButton2.addMouseListener(new MouseListener() {
            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("鼠标点击");
            }

            @Override
            public void mousePressed(MouseEvent e) {
                System.out.println("鼠标按下,但没有松开");
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                System.out.println("鼠标松开");
            }

            @Override
            public void mouseEntered(MouseEvent e) {
                System.out.println("鼠标悬停");
            }

            @Override
            public void mouseExited(MouseEvent e) {
                System.out.println("鼠标移走");
            }
        });

3.键盘事件

例如向文本域添加键盘事件

jTextField.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {
//                System.out.println("键盘输入完成");
            }

            @Override
            public void keyPressed(KeyEvent e) {
//                System.out.println("键盘按下");
            }

            @Override
            public void keyReleased(KeyEvent e) {
//                "释放键盘"
                System.out.println(jTextField.getText());
            }
        });

4.添加窗口事件

例如向当前窗口添加窗口事件:

this.addWindowListener(new WindowAdapter() {//窗口适配器WindowAdapter,也可使用new WindowListener()
            @Override
            public void windowClosing(WindowEvent e) {
                int res = JOptionPane.showConfirmDialog(null,"确定退出聊天室?","操作提示",JOptionPane.OK_CANCEL_OPTION);//弹出一个对话框
                if (res == 0){//确认退出
                    dispose();
                }
            }
        });

对话框

JOptionPane对话框

1.showMessageDialog():消息对话框

  • 五种消息类型,图标不同:
ERROR_MESSAGE 错误消息提示
INFORMATION_MESSAGE 信息提示
WARNING_MESSAGE        警告提示
QUESTION_MESSAGE  问题提示
PLAIN_MESSAGE        简洁提示
  • 例如:
JOptionPane.showMessageDialog(null, "发送内容不能为空");
  • 图示:

 

2.showConfirmDialog():确认对话框

主要有四种消息类型图标不同:

DEFAULT_OPTION       默认选项
YES_NO_OPTION 是/否选项
YES_NO_CANCEL_OPTION是/否/取消选项
OK_CANCEL_OPTION确定/取消
  • 例如:
JOptionPane.showConfirmDialog(null,"确定退出聊天室?","操作提示",JOptionPane.OK_CANCEL_OPTION);
  • 图示: 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot参数校验的最佳实战教程

    SpringBoot参数校验的最佳实战教程

    开发过程中,后台的参数校验是必不可少的,下面这篇文章主要给大家介绍了关于SpringBoot参数校验的最佳实战,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • SpringBoot使用Tika进行文档解析的完整指南

    SpringBoot使用Tika进行文档解析的完整指南

    Tika是一款Apache开源的,跨平台,支持多品种文本类型的内容检测和提取工具,本文主要为大家介绍了SpringBoot使用Tika进行文档解析的完整步骤,希望对大家有所帮助
    2025-07-07
  • Java LongAdder使用与应用实战

    Java LongAdder使用与应用实战

    LongAdder是 Java 并发编程中为高并发计数而生的利器,本文就来详细的介绍一下Java LongAdder的使用,具有一定的参考价值,感兴趣的可以了解一下
    2025-10-10
  • 运用springboot搭建并部署web项目的示例

    运用springboot搭建并部署web项目的示例

    这篇文章主要介绍了运用springboot搭建并部署web项目的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Spring Cloud微服务之间调用Dubbo的详细过程

    Spring Cloud微服务之间调用Dubbo的详细过程

    SpringCloudAlibabaDubbo是阿里巴巴开源的Dubbo与SpringCloud的深度集成方案,本文介绍Spring Cloud微服务之间调用Dubbo的详细过程,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • Java修改maven的默认jdk版本为1.7的方法

    Java修改maven的默认jdk版本为1.7的方法

    这篇文章主要介绍了Java修改maven的默认jdk版本为1.7的方法,需要的朋友可以参考下
    2018-02-02
  • 关于log4j2的异步日志输出方式

    关于log4j2的异步日志输出方式

    这篇文章主要介绍了关于log4j2的异步日志输出方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java实现驼峰与下划线互转的方法

    Java实现驼峰与下划线互转的方法

    这篇文章主要为大家详细介绍了Java实现驼峰与下划线互转的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • 浅聊一下Spring中Bean的配置细节

    浅聊一下Spring中Bean的配置细节

    我们知道,当写完一个普通的 Java 类后,想让 Spring IoC 容器在创建类的实例对象时使用构造方法完成实例对象的依赖注入,那么就需要在配置元数据中写好类的 Bean 定义,包括各种标签的属性。所以本文我们来说说这其中的配置细节,需要的朋友可以参考下
    2023-07-07
  • HertzBeat 监控 SpringBoot 使用案例(最新整理)

    HertzBeat 监控 SpringBoot 使用案例(最新整理)

    文章介绍HertzBeat作为无Agent的SpringBoot监控工具,支持指标采集、Grafana可视化、阈值告警及多通道通知,简化云原生监控流程,本文给大家介绍HertzBeat监控SpringBoot使用案例,感兴趣的朋友一起看看吧
    2025-08-08

最新评论