私はJavaアプレットを持っていますJTable
。大量のデータと不十分なネットワーク帯域幅が原因で、テーブルのロードや変更などの操作を実行するのに多くの時間がかかります。リクエストが処理中であることをユーザーに知らせるために、一種のアクティビティ インジケーターを追加することを考えています。を使用する前にJProgressBar
、ajax アクティビティ フラワーのような他のオプションがあるかどうかを知りたいです。
3 に答える
最も簡単な方法は、(アニメーション化されていない)WAIT_CURSORを設定することです。
// Setting cursor for any Component:
component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
doProcessing();
component.setCursor(Cursor.getDefaultCursor());
http://www.catalysoft.com/articles/busyCursor.htmlを参照してください
アニメーションカーソルについては、以下を参照してください。
http://book.javanb.com/swing-hacks/swinghacks-chp-12-sect-2.html
SwingWorker
この例で提案されているように、このために設計されました。特に、「イベント ディスパッチ スレッドで呼び出されるため、プロセス メソッド内で from を変更しても安全であることに注意してくださいtableModel
。」—<a href="http://download.oracle.com/javase/6/docs/api /javax/swing/SwingWorker.html#publish%28V...%29" rel="nofollow noreferrer">publish()
これにはJBusyComponentを使用できます。Table または Scrollpane を JBusyComponent でラップするだけです。ただし、イベント ディスパッチ スレッドの外部でデータをロードすることを忘れないでください。このために、他の回答で提案されているように SwingWorker を使用できます。JBusyComponent は、このための BusySwingWorker をすでに提供しています。