从它调用另一个类后返回到表单

时间:2014-05-23 09:03:35

标签: java swing user-interface netbeans event-dispatch-thread

enter image description here

我有一个表单(如屏幕截图所示),在用户点击“运行服务器”之前,应禁用登录部分。

“运行服务器”按钮的作用是调用另一个类:Server.getInstance()。startMe();

我想要做的是在调用另一个类之后,是启用登录部分,但是在点击“运行服务器”按钮后问题,整个表单变得不受我的控制而且不接受任何输入来自我,它甚至没有启用登录部分!

“运行服务器”代码:

    private void runServerButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
    Server.getInstance().startMe();
    runServerButton.setEnabled(false);
    userLoginEnterBottun.setEnabled(true);
    useridLoginTextField.setEnabled(true);
    passwordLoginTextField.setEnabled(true);
}   

1 个答案:

答案 0 :(得分:3)

您需要在单独的线程中启动运行服务器部分,目前它正在持有您的EDT,这就是您的GUI无响应的原因:

private void runServerButtonActionPerformed(java.awt.event.ActionEvent evt) {   
    new  Thread() {                                              
       public void run() {
         Server.getInstance().startMe();
       }
    }.start(); 
    runServerButton.setEnabled(false);
    userLoginEnterBottun.setEnabled(true);
    useridLoginTextField.setEnabled(true);
    passwordLoginTextField.setEnabled(true);
}