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.

posted @   leungqingyun  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示