私はJava GUIプログラムを作成し、そのGUIにjListを追加して、呼び出して項目を追加することにより、そのjListにプログラムの出力を印刷しました
listBox.addElement(""); // where listBox is an instance of jList
しかし問題は、追加時に項目が表示されていないことです。プログラムが終了しようとしているときに表示されます。
つまり、「開始」ボタンをクリックしてプログラムを開始すると、「listBox」への項目の追加を含むすべての処理が完了しますが、プログラムが「actionPerformed()」に戻ると項目が jList に表示されます。 「開始」ボタンのActionListenerの"メソッド。
リストにアイテムが追加されたときにすぐにアイテムを表示するためにできること。
上記のアプリケーションはマルチスレッドです。メイン スレッドは GUI を起動し、10 個のスレッドを開始して jList の「listModel」(DefaultListModel のインスタンス) をすべてのスレッドに渡し、各スレッドが「addElement("")」メソッドを呼び出してリストに項目を追加できるようにします。 「リストモデル」
実際には、listModel は DefaultListModel クラスのサブクラス (DefaultListModelSubClass) のインスタンスです。addElement() メソッドをオーバーライドして「同期」させ、一度に 1 つのスレッドだけが項目を追加できるようにしました。