用户界面-Java GUI按钮不可通过



代码:

public void actionPerformed(ActionEvent evt)
    {
.......

while(true)
{
if (source==button1)
                   {
                     //button1 code                       
                   }

if(source==button2) 
                  { 
                    // button2 code
                  }
} //while true

.....
  //some other code that I don't want it to execute until while breaks
}//action performed

所以问题是,当执行上述代码时,GUI被卡住了,无法按下任何按钮。如果我删除了无限循环,剩下的代码将被执行并停止我的算法。这个问题有什么解决办法吗?

谢谢!

您正在阻塞GUI线程。试试看教程,它解释了如何在后台线程中运行用户操作。

http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html

while循环是一个严重的编程错误。当程序在事件调度线程中执行循环时,它将无法调度任何其他事件(按下其他按钮)。

你必须消除循环。这样一来,actionPerformed方法将在每次点击按钮时运行(假设按钮有actionListener…)。

相关内容

  • 没有找到相关文章

最新更新