首页 > 编程语言 >JavaSwing 事件处理

JavaSwing 事件处理

时间:2024-12-03 21:33:59浏览次数:11  
标签:事件处理 jFrame 监听器 JFrame 窗体 设置 new JavaSwing

1. 事件类型

 

2. ActionListener

   a:如果同一个组件添加了多个监听器,则每个监听器都会被执行,  后添加监听器会先被执行!

   b:  同一个监听器对象,可以监听多个组件!

   

try
        {
            BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated;
            org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
            
        }
        catch(Exception e)
        {
            //TODO exception
        }
        
        // 创建窗体对象
        JFrame jFrame =new JFrame();
        // 设置窗体大小
        jFrame.setSize(800, 500);
        // 设置窗体全屏展示
        //jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        // 设置窗体显示位置
        //jFrame.setLocation(100,200);
        // 设置窗体显示正中间
        jFrame.setLocationRelativeTo(null);
        // 设置窗体标题
        jFrame.setTitle("窗体标题");
        // 设置窗体不可全屏显示
        //jFrame.setResizable(false);
        // 设置窗体关闭后退出程序
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置此窗口是否应该始终位于其他窗口上方
        jFrame.setAlwaysOnTop(true);
        // 设置窗体图标
        jFrame.setIconImage(new ImageIcon(HelloWorld.class.getResource("/images/book.png")).getImage());
        
        
        
        
        // 创建容器
        JPanel jPanel =new JPanel();
                        
        JButton btn01 =new JButton("Button01");
        
        //给组件添加监听器
        btn01.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("actionlistener");
                
            }
        });
        

        jPanel.add(btn01,"b1");
        
        jFrame.setContentPane(jPanel);

        
        // 设置窗体可见
        jFrame.setVisible(true);

 

 

 

 

3. 监听器多种实现方式

 

try
        {
            BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated;
            org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
            
        }
        catch(Exception e)
        {
            //TODO exception
        }
        
        // 创建窗体对象
        JFrame jFrame =new JFrame();
        // 设置窗体大小
        jFrame.setSize(800, 500);
        // 设置窗体全屏展示
        //jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        // 设置窗体显示位置
        //jFrame.setLocation(100,200);
        // 设置窗体显示正中间
        jFrame.setLocationRelativeTo(null);
        // 设置窗体标题
        jFrame.setTitle("窗体标题");
        // 设置窗体不可全屏显示
        //jFrame.setResizable(false);
        // 设置窗体关闭后退出程序
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置此窗口是否应该始终位于其他窗口上方
        jFrame.setAlwaysOnTop(true);
        // 设置窗体图标
        jFrame.setIconImage(new ImageIcon(HelloWorld.class.getResource("/images/book.png")).getImage());
        
        
        
        
        // 创建容器
        JPanel jPanel =new JPanel();
                        
        JButton btn01 =new JButton("Button01");
        JButton btn02 =new JButton("Button02");
        
        // 创建内部类来实现监听器对象共享
        class ActionListenerImpl  implements ActionListener{
            int count;
            int num;
            ActionListenerImpl(int num){
                this.num=num;
            }
            @Override
            public void actionPerformed(ActionEvent e) {
                ++count;
                System.out.println("button"+num+"被点击了"+count);
                
            }
            
        }
        
        btn01.addActionListener(new ActionListenerImpl(1));
        btn02.addActionListener(new ActionListenerImpl(2));
        
        
        jPanel.add(btn01,"b1");
        jPanel.add(btn02,"b2");
        
        jFrame.setContentPane(jPanel);

        
        // 设置窗体可见
        jFrame.setVisible(true);

 

 

 

 

 

4.

5.

6.

7.

标签:事件处理,jFrame,监听器,JFrame,窗体,设置,new,JavaSwing
From: https://www.cnblogs.com/liangqingyun/p/18585014

相关文章

  • JavaSwing外观美化
    系统可选风格 windows风格:  com.sun.java.swing.plaf.windows.WindowsLookAndFeel windowsClassic风格:  com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeelMetal风格(Swing默认):avax.swing.plaf.metal.MetalLookAndFeelMotif风格: com.sun.java.swin......
  • DevEco Studio:状态管理与事件处理
    DevEcoStudio:状态管理与事件处理引言在现代前端开发中,状态管理和事件处理是构建交互式应用的核心。DevEcoStudio,作为华为推出的开发环境,支持开发者使用TypeScript构建HarmonyOS应用。本文将通过三个示例代码,深入探讨如何在DevEcoStudio中管理状态和处理事件。第一节:状态变量......
  • 浏览器事件处理机制:从硬件中断到事件驱动
    关键词:硬件中断,事件驱动,浏览器事件监听,操作系统抽象层,跨平台兼容性,事件冒泡与捕获摘要:本文深入探讨浏览器事件处理机制,从硬件中断到事件驱动模型,揭示了用户输入如何转化为页面响应。我们将了解操作系统的抽象层如何巧妙地连接硬件和应用程序,以及浏览器如何实现......
  • 浏览器事件处理机制:从硬件中断到事件驱动
    关键词:硬件中断,事件驱动,浏览器事件监听,操作系统抽象层,跨平台兼容性,事件冒泡与捕获摘要:本文深入探讨浏览器事件处理机制,从硬件中断到事件驱动模型,揭示了用户输入如何转化为页面响应。我们将了解操作系统的抽象层如何巧妙地连接硬件和应用程序,以及浏览器如何实现......
  • 深入理解 Redis 的文件事件处理器
    概述Redis的文件事件处理器是基于Reactor模式实现的,内部采用IO多路复用程序来同时监听多个套接字,当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关闭(close)等操作时,与操作相对应的文件事件就会产生,此时文件事件处理器就会调用套接字之前关联好的事......
  • Vue 方法与事件处理与 TypeScript:增强前端应用的交互性
    ......
  • JQuery的事件处理
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metaname="viewport"content="width=device-width,initial-scale=1.0">  <title>Document</title>  ......
  • 【Qt 事件】—— 详解Qt事件处理
    目录 (一)事件介绍 (二)事件的处理(三)按键事件 3.1 单个按键3.2组合按键(四)鼠标事件4.1鼠标单击事件4.2鼠标释放事件 4.3鼠标双击事件4.4鼠标移动事件 4.5滚轮事件 (五) 定时器5.1QTimerEvent类5.2QTimer类(六)事件分发器 6.1概述6.2事件分发器工作......
  • 【15.5 python中,wxPython框架的事件处理】
    python中,以wxPython框架为例,介绍一下事件处理在wxPython中,事件处理是构建交互式应用程序的关键部分。用户与图形用户界面(GUI)中的元素(如按钮、文本框等)交互时,会产生事件(如点击、输入文本等)。wxPython提供了一套机制来捕获这些事件,并对它们作出响应。事件处理的基本步骤......
  • Qt 事件传递流程-事件处理器|事件分发器|事件过滤器
    (总体传递流程图见文章末尾)自定义控件结构 自定义继承于QLabel的控件类 PropagateLabel.h 自定义窗口 PropagateWidget 在PropagateWidget中添加一个PropagateLabel标签1PropagateWidget::PropagateWidget(QWidget*parent):2QWidget(parent)3{4......