JTabbedPane
In my Swingプログラムがあります。ユーザーがタブをクリックすると、プログラムがデータを取得して結果を処理するのに時間がかかり、選択したタブに結果が表示されます。
データを処理していることをユーザーに知らせるために、砂時計などを表示するにはどうすればよいですか? ジョブが完了する前にタブを再度クリックしないでください。
JTabbedPane
In my Swingプログラムがあります。ユーザーがタブをクリックすると、プログラムがデータを取得して結果を処理するのに時間がかかり、選択したタブに結果が表示されます。
データを処理していることをユーザーに知らせるために、砂時計などを表示するにはどうすればよいですか? ジョブが完了する前にタブを再度クリックしないでください。
最も簡単な方法は、適切なカーソルを使用して、適切なコンポーネント(おそらくトップレベルウィンドウ)でsetCursorを呼び出すことです。
component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
そして、終わったらそれを元に戻します。
component.setCursor(Cursor.getDefaultCursor());
JProgressBar (不確定モードの可能性があります) は正しいように聞こえます。データがフェッチされるまで、それをタブに置きます。適切に設計された UI では、長時間実行されるタスクが完了するまでユーザーを待たせるのではなく、その間に別のことを実行できるようにする必要があります。
setCursor(int)は非推奨になりました。これはおそらく少しきれいです:
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
私は他に述べたように
他の回答が述べているように、待機カーソルを設定することもできますが、それ以上のマウスクリックを防ぐことにも言及しています。ガラス板を使用して、長い操作が終了するまでコンポーネントのクリックを防ぐことができます。ガラス板のSunチュートリアルに加えて、http: //www.java2s.com/Code/Java/Swing-JFC/DemonstrateuseofGlassPane.htmに良い例があります。