1

私は、何をすべきかを見つけるために徹底的に検索することによって、私が抱えていたこの問題に取り組もうとしています。しかし、私が見つけた結果のどれも (少なくとも今まで) 私の要求に合っていませんでした.

実際、実行可能な JAR を作成しました。この jar は .EXE を開始します。さて、問題は、EXE が常に実行され続けることです。コンソールに書き込まれたものを取得して、それが読み取られるとすぐに JTextBox に書き込むようにしたいと考えています。

その例を挙げていただけませんか。自分でやりたいのですが、頭がよくわからないようです。

どうもありがとうございました。

編集:私がやろうとしているのは、ゲームサーバーのGUIです

EDIT 2:重複していると言っている人のために... そうだったらいいのに... 他の人が説明したことを試してみましたが、うまくいかなかったので、ここで尋ねました..

編集 3: 問題が何であるかを見つけることを楽しみにしていたので、私が行ったことにはエラーがないことをお伝えします。ただし、サーバー (C++/C で記述) が「通常の」方法で出力しない可能性があるという事実が原因である可能性があります。それが理由でしょうか?そうだといい。そうしないと、本当に間違ったことをしている可能性があります。

InputStream読むことができるようにするために使用することに注意してください..でもまあ。

4

1 に答える 1

0

基本的に、何らかのバックグラウンド スレッドでプロセスを実行することから始める必要があるため、イベント ディスパッチ スレッドがブロックされるリスクはありません。

次に、プロセスを読む必要がありますInputStream。入力が読み取られると、Swing のシングル スレッド ルールに違反しないように、これらの更新を UI にプッシュする必要があります。つまり、すべての更新がイベント ディスパッチ スレッドのコンテキスト内で行われるようにする必要があります。

詳細については、Swing での同時実行を確認してください。

この場合、 のようなものを使用することをお勧めしますSwingWorker。バックグラウンド スレッドからプロセスを監視できますが、更新を EDT に同期する使いやすい機能があります。

例として、Process からの Java InputStream の印刷を参照してください。

于 2013-11-11T22:15:47.503 に答える