ActionListener 完成后如何触发另一个动作监听器

罗恩·默瑟

我创建了一个带有 Jframe、JPanel、JLabel 和 JButton 的 GUI。

 // JFrame
    Jframe f = new JFrame("");
 
 // JButton
    JButton b = new JButton("button1");

 // JLabel
    JLabel l = new JLabel("panel label");

 // JPanel
    JPanel p = new JPanel();


我在面板上添加了按钮和标签。我的按钮有两个 actionListeners。

 b.addActionListener(e -> {

          //code

        });
 b.addActionListener(e -> {

          //code

        });

我想执行我的第一个动作侦听器。然后执行另一个。基本上,我想在 Jlabel 中按顺序输出一些文本。我希望它在面板上显示“你好”然后“再见”。它给我的问题是它只显示来自我的第二个 ActionListener“Goodbye”的文本。

巴兰布尔萨利

您可以将第二个转换为以下示例。它只显示第二个的原因是因为它们都立即运行并且您将最后一个视为标签。

b.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed( ActionEvent e ) {
            
            Thread t = new Thread(new Runnable() {

                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                        // set your label as Goodbye here
                        // add any other business logic
                    } catch (InterruptedException e1) {
                        e1.printStackTrace();
                    }
                    
                }
                
            });
            t.start(); 
        }
        
    });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章