我有两个类,GUI和Test。
在GUI中,它有一个JTextArea
和一个按钮。单击该按钮时,将调用Text中的方法running()
。按钮的监听器如下:
public void actionPerformed(ActionEvent event){
if (event.getSource() == start) //start is the button
{
textArea.setText(" Testing starts!");
pane.updateUI();
new Text().running(this);
}
}
类Text中的running()如下:
public void running(GUI gui) {
gui.textArea.setText("clientIP IS:"+clientIP);
gui.pane.updateUI();
.......
}
当我单击GUI中的开始按钮时,将执行类Test中的运行方法。但是,textArea中的文本在方法running()完成后更新。
如何在调用方法之前更新文本?
非常感谢!
答案 0 :(得分:2)
您需要在被告线程中执行更新方法。所以尝试用你的逻辑包装:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//update
}
});