我有一个表单(如屏幕截图所示),在用户点击“运行服务器”之前,应禁用登录部分。
“运行服务器”按钮的作用是调用另一个类: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);
}
答案 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);
}