2012-05-04 74 views
3

我需要有一个并行函数在我的程序中一直运行。 我不知道我是否正确思考,但我想要做的是让一段代码始终更新我的TextArea,从服务器获取信息。我可以在Java中创建没有函数的线程吗?

我正在使用RMI,只是你知道。

我可以在MainClass中创建一个线程函数,并让它一直运行吗?

或者我如何创建一个线程来更新我的TextArea在另一个类中?我如何分享我的TextArea?

+2

你是什么意思 “具体化”? –

+0

他的意思是**更新**,而不是_actualize_(可能是西班牙语/意大利语/法语或其他类似的翻译错误) –

回答

3

不知道我是否理解,我将假定TextArea表示一个JTextArea,MainClass是应用程序的入口点。

什么阻止你这样做?

public class Updater implements Runnable { 
    private JTextArea textArea; 

    public Updater(JTextArea textArea){ 
     this.textArea = textArea; 
    } 

    @Override 
    public void run(){ 
     SwingUtilities.invokeLater(new Runnable(){ 
      public void run(){ 
          //do what you've got to do.... 
       textArea.setText("New Text"); 
      } 
     }); 
    } 

} 

而在你的 “MainClass” 是这样的:

public static void main(String[] args) { 

    Thread myThread = new Thread(new Updater(myTextArea)); 
    myThread.start(); 

} 
+1

您应该通过调用'myThread.setDaemon(true)'来定义线程为守护程序线程,否则JVM将永远不会退出。 –

+0

@a_horse_with_no_name +1:好点,虽然如果这是一个Swing应用程序,它有可能会在某个点终止System.exit(),这会终止所有正在运行的线程。 –

+0

就是这样!我不知道我可以使用Thread myThread = new Thread(new Updater(myTextArea))。谢谢! – fhbeltrami

相关问题