我对Java很陌生,所以我可能会遗漏一些基本的东西,但这里有。
我有一个带按钮的GUI,我想点击它,将窗口中的文本更改为某些内容然后执行任务
connectButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
databaseConnectWindow.setText("Connecting...");
connectToDatabase();
}
});
但是使用上面的代码,只有在conectToDatabse完成之后,databaseConnectWindow中的文本才会更改。 有什么想法吗?
答案 0 :(得分:2)
将SwingWorker用作后台线程,这样就不会锁定GUI线程,也称为事件派发线程或EDT。有关详情,请查看Lesson: Concurrency in Swing
答案 1 :(得分:1)
您正在UI线程中调用connectToDatabase()
在UI线程空闲之前,UI无法更新。
您应该在后台线程上连接到数据库。