ボタンにアクションリスナーがあり、多くのバックグラウンドタスクを実行するために、スレッド、待機、通知、またはスリープを使用しなかったデスクトップアプリケーションを開発/開発しています。ボタンをクリックすると、JFrameがフリーズするだけです。
1) 誰かが私に何を使うべきか、より簡単に提案できますか?
2) setvalue(n) メソッドで jprogress bar を使用していますが、n を読み込みにかかった時間で自動的に置き換えたいのですが、どうすればよいですか?
ボタンにアクションリスナーがあり、多くのバックグラウンドタスクを実行するために、スレッド、待機、通知、またはスリープを使用しなかったデスクトップアプリケーションを開発/開発しています。ボタンをクリックすると、JFrameがフリーズするだけです。
1) 誰かが私に何を使うべきか、より簡単に提案できますか?
2) setvalue(n) メソッドで jprogress bar を使用していますが、n を読み込みにかかった時間で自動的に置き換えたいのですが、どうすればよいですか?
Swing for GUIを使用している場合は、「SwingWorker」クラスを使用する必要があります。
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/simple.html
1)ボタンをクリックして新しいスレッドに移動するときに、実行中のコードを移動する必要があります。このようなものが機能します:
public class Worker implements Runnable {
Thread t;
public Worker() {
t = new Thread(this);
}
@Override
public void run() {
//do stuff here
}
public void start() {
t.start();
}
}
次に、JFrameのボタンをクリックすると、次のようになります。
Worker w = new Worker();
w.start();
2)setProgress()
任意int
の時間(たとえば、開始時に現在の時刻を取得、終了時に現在の時刻を取得、所要時間=終了-開始)で呼び出すことができます。使用したことも確認してくださいsetMaximum()
。