我需要有一个并行函数在我的程序中一直运行。 我不知道我是否正确思考,但我想要做的是让一段代码始终更新我的TextArea,从服务器获取信息。我可以在Java中创建没有函数的线程吗?
我正在使用RMI,只是你知道。
我可以在MainClass中创建一个线程函数,并让它一直运行吗?
或者我如何创建一个线程来更新我的TextArea在另一个类中?我如何分享我的TextArea?
我需要有一个并行函数在我的程序中一直运行。 我不知道我是否正确思考,但我想要做的是让一段代码始终更新我的TextArea,从服务器获取信息。我可以在Java中创建没有函数的线程吗?
我正在使用RMI,只是你知道。
我可以在MainClass中创建一个线程函数,并让它一直运行吗?
或者我如何创建一个线程来更新我的TextArea在另一个类中?我如何分享我的TextArea?
不知道我是否理解,我将假定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();
}
您应该通过调用'myThread.setDaemon(true)'来定义线程为守护程序线程,否则JVM将永远不会退出。 –
@a_horse_with_no_name +1:好点,虽然如果这是一个Swing应用程序,它有可能会在某个点终止System.exit(),这会终止所有正在运行的线程。 –
就是这样!我不知道我可以使用Thread myThread = new Thread(new Updater(myTextArea))。谢谢! – fhbeltrami
你是什么意思 “具体化”? –
他的意思是**更新**,而不是_actualize_(可能是西班牙语/意大利语/法语或其他类似的翻译错误) –