プログラム内で常時実行されている並列機能が必要です。 私は正しいと思っているのかどうかはわかりませんが、私がしたいのは、サーバーから情報を取得しながら、常に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)'を呼び出すことによってスレッドをデーモンスレッドとして定義する必要があります。 。 –
@a_horse_with_no_name +1:良い点ですが、これがSwingアプリケーションの場合、実行中のスレッドをすべて終了させる点でSystem.exit()で終了する可能性があります。 –
それだけです!スレッドmyThread = new Thread(新しいアップデータ(myTextArea))を使用できるかどうかはわかりませんでした。ありがとう! – fhbeltrami
あなたが "実現" とはどういう意味ですか? –
彼は** update **、_actualize_ではないことを意味します(スペイン語/イタリア語/フランス語などからの翻訳が悪いかもしれません) –