質問

があります JTabbedPane 私の中で スイング プログラム。ユーザーがタブをクリックすると、プログラムはデータを取得して結果を処理するのに時間がかかり、選択したタブに結果が表示されます。

砂時計などの効果を表示するにはどうすればよいですか ユーザーがデータを処理していることを認識できるようにするには?ジョブが完了する前にタブを再度クリックしないでください。

役に立ちましたか?

解決

A JProgressBarのの(おそらくはindetermianteモード)右の音 - データがフェッチされるまで、タブの上にそれを置きます。うまく設計されたUIが完了し、代わりに、彼らは何かを挟ん行うことができるように、長時間実行されるタスクを待つようにユーザーに強制しないはずです。

他のヒント

最も簡単な方法はただ電話することです セットカーソル 適切なコンポーネント (おそらくトップレベルのウィンドウ) 上で適切な カーソル.

component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

そして、終わったら元に戻します。

component.setCursor(Cursor.getDefaultCursor());

はsetCursor(int型)が廃止されました。これはおそらくビットクリーナーです。

setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
他の回答が言及したよう

、あなたは待機カーソルを設定することもできますが、追加のマウスクリックを防止することに言及します。あなたは、長い操作が完了するまでの部品のクリックを防ぐために窓ガラスを使用することができます。 日のチュートリアルに加えて、窓ガラスにを、 http://www.java2s.comの良い例があります/Code/Java/Swing-JFC/DemonstrateuseofGlassPane.htmする

他の人が述べたように、私はそうします

  • カーソルを変更する
  • SwingWorker を使用する
  • プログレスバーまたはアニメーション画像をガラス枠に表示する
  • タスクが完了したらガラス窓を非表示にする
  • デフォルトのカーソルを復元する
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top