Java JButton不会更改字段值

Java JButton不会更改字段值,java,swing,jframe,jbutton,actionlistener,Java,Swing,Jframe,Jbutton,Actionlistener,我在一个简单的JFrame应用程序中遇到了一个奇怪的问题,它只有一个按钮来更改字段值。当我试着调试我的应用程序时,它工作得很好,但是当我试着运行它时,它就不工作了,并且卡在while循环中。 这是我的图形课: 公共类测试扩展JFrame实现ActionListener { 私有静态最终长serialVersionUID=1L; 私有布尔连接; 公共JButton btn连接; 公开考试() { JPanel p=新的JPanel(); p、 setLayout(空); //连接按钮 btnCon

我在一个简单的JFrame应用程序中遇到了一个奇怪的问题,它只有一个按钮来更改字段值。当我试着调试我的应用程序时,它工作得很好,但是当我试着运行它时,它就不工作了,并且卡在while循环中。 这是我的图形课:

公共类测试扩展JFrame实现ActionListener
{
私有静态最终长serialVersionUID=1L;
私有布尔连接;
公共JButton btn连接;
公开考试()
{
JPanel p=新的JPanel();
p、 setLayout(空);
//连接按钮
btnConnect=新的JButton(“连接”);
btnConnect.setBounds(0,0,100,20);
p、 添加(btnConnect);
btnConnect.addActionListener(此);
getContentPane().add(p);
setDefaultCloseOperation(关闭时退出);
setTitle(“客户”);
设置大小(200200);
setVisible(真);
}
公共布尔get()
{
//System.out.println(连接已按下);
按下返回按钮;
}
公共无效集(布尔b)
{
b=b;
}
@凌驾
已执行的公共无效操作(操作事件e)
{
//e、 getActionCommand();
connectPressed=true;
System.out.println(连接已按下);
}
}
下面是我的应用程序测试代码:

公共类Test2
{
公共静态void main(字符串[]args)
{
System.out.println(“你好”);
测试t=新测试();
t、 设置(假);
while(true)
{
if((t.get()))
打破
}
System.out.println(“再见”);
}
}
有人能帮我解决什么问题吗?

运行此操作时:

while (true) {
    if ((t.get()))
        break;              
}
线程将吃掉所有cpu,使UI无响应;要克服这个问题,一个简单的方法是在循环中增加睡眠时间:

while (true) {
    Thread.sleep(250); // sleep for 250 msecs
    if (t.get())
        break;              
}
无论如何,这只是一个例子,不是真正的解决方案;更好的方法是将主类注册为,或者在中运行循环