【问题标题】:JFrame program freezes when button is pressed按下按钮时JFrame程序冻结
【发布时间】:2020-03-09 15:29:28
【问题描述】:

当按下 JButton 时,程序将冻结,标题栏上的关闭按钮不会关闭它,关闭它的唯一方法是使用任务管理器。

按下按钮的代码:

class ClickButton implements ActionListener {

    public void actionPerformed( ActionEvent action ) {

        btn.setVisible(false);

        while(!btn.isVisible()) {
            label1.setText("Slaying Demons"); 
            wa(500);
            label1.setText("Slaying Demons.");
            wa(500);
            label1.setText("Slaying Demons.."); 
            wa(500);
            label1.setText("Slaying Demons..."); 
            wa(500);
        }
    }
}

wa() 方法只是一个简单的 thread.sleep() 方法,它接受参数说明它应该休眠多长时间。

【问题讨论】:

  • 你永远不会设置btn.setVisible(true)所以while循环可以停止。
  • 你了解什么是循环吗?

标签: java swing jframe jbutton event-dispatch-thread


【解决方案1】:

您的问题是您正在使用一个永远不会关闭的 while 循环。您的代码所做的是它执行 label.set(text) 部分,并且因为它处于循环中,所以它会再次执行它。尝试改用 if 语句。

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 2013-01-30
    • 2016-12-18
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多