1

Java コンソールから GUI プログラムへの移行に問題があります。

私のコンソール プログラムは、辞書からすべての単語を読み込みます。次に、各単語を順番に使用して暗号を解読し、解読されたテキストを画面に最初の単語、次に 2 番目の単語、というように表示します。

GUIプログラムを書くとき、私はコマンドを持っています

jTextArea.append(decipherment);

しかし、プログラムがすべての単語を解読するまで何も表示されず、すべての解読結果が、私が望むように 1 つずつではなく一緒に表示されます。

私のGUIプログラムの構造には、コード付きのボタンが含まれています:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    decrypt();
}

そして、次のセクションがあります。

public void decrypt(){
    ...
}

これには、辞書の単語をロードするコードが含まれており、各単語で解読を行い、メソッド呼び出しで各解読を表示します。 jTextArea.append(decipherment);

ただし、前述のとおり、個々の解読は表示されません。むしろ、プログラムは最後まで実行され、すべての解読結果がまとめて表示されます。

他のスレッドを読んだ後、私は GUI プログラムを正しく書いていないと感じましたが、自分の間違いが何であるかはわかりませんでした。助けていただければ幸いです。

4

2 に答える 2

4

GUI がブロックされている理由を理解するには、並行性に関する Swing チュートリアルのセクションを読んでください。

SwingWorkerバックグラウンド スレッドにa を使用しpublish、結果をそのまま使用して、GUI を更新できます。

于 2013-04-18T15:17:48.113 に答える