0

私はJava、特にJavaでGUIを使用するのは初めてです。プログラムにプログレス バーを配置して、一定量の作業が完了するたびに値を更新したいと考えています。現在、押されたときにメソッドを実行するボタンがあり、そのメソッドで特定の作業が行われた後、毎回 setValue() 関数を (必要な値で) 配置します。ただし、ボタンを押すと、メソッドの実行中にボタンが押されたままになっているように見えます (メソッドの実行が完了するまでに時間がかかります)。進行状況バーは、ButtonListener で他のすべての処理が完了するまで更新されません。 、そのため、完了後は直接 100% になります)。

私は何を間違っていますか?

前もって感謝します。

4

1 に答える 1

3

これはおそらく、メイン スレッドですべての作業を行っているため、すべての作業が完了するまで UI がハングするためです。これを行うべきではありません。このような操作には別のEDTを使用する必要があります。試してみるべきことは、update progressBar ジョブを別の EDT で実行することです。これに使用SwingUtilities.invokeLater(Runnable r)します。

于 2012-03-01T05:32:00.063 に答える