在方法运行之前,JTextArea中的java-update文本

时间:2014-06-10 14:17:55

标签: java swing updates jtextarea

我有两个类,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()完成后更新。

如何在调用方法之前更新文本?

非常感谢!

1 个答案:

答案 0 :(得分:2)

您需要在被告线程中执行更新方法。所以尝试用你的逻辑包装:

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        //update
    }
});

详细了解Swing Concurrency