JTabbedPane
にあるパネルの1つをクリックすると、最初にいくつかのアクションを実行する必要があります。たとえば、ユーザー名とパスワードを確認する必要があるとします。一致した場合にのみ、特定のパネル操作を実行する必要があります。どのような方法を提案できますか?JTabbedPane:選択したタブを表示する前に実行するアクション
5
A
答えて
7
ない私は完全にあなたの質問を理解して、私のようなものだろう:最初のタブをクリックをリッスンするためのJTabbedPaneにChangeListenerを追加
- を。
- ChangeEventが発生すると、SwingWorkerを使用してバックグラウンドスレッドでログインを実行します。
- ログインが成功した場合は、イベントディスパッチスレッドで必要なUI操作を実行します。たとえば、
:
tabbedPane.addChangeListener(new ChangeListener() {
private boolean init;
public void stateChanged(ChangeEvent e) {
if (!init) {
init = true;
new SwingWorker<Boolean, Void>() {
@Override
protected void done() {
try {
boolean loggedIn = get();
if (loggedIn) {
// Success so perform tab operations.
}
} catch (InterruptedException e1) {
e1.printStackTrace(); // Handle this.
} catch (ExecutionException e1) {
e1.printStackTrace(); // Handle this.
}
}
protected Boolean doInBackground() throws Exception {
// Perform login on background thread. Return true if successful.
return true;
}
}.execute();
}
}
});
3
タブを変更するためのアクションはUIクラスのマウスリスナーによってトリガーされます。それは通過し、クリックされた座標にタブがあるかどうかチェックし、そうであればタブが有効かどうかをチェックする。その条件が満たされている場合は、JTabbedPane
にsetSelectedIndex(int)
と表示されます。タブの変更を傍受するには、setSelectedIndex(int)
を上書きしてアクセス許可チェックをトリガーします。アクセス許可が有効になったら、super.setSelectedIndex(int)
に電話をかけることができます。これはあなたが望むことをするはずです。
権限チェックが長時間実行されている呼び出し(データベースまたはサーバーへの呼び出し)の場合は、SwingWorker
などの処理を分割して、AWT EventQueue
の権限チェックが完了するようにしてくださいsuper.setSelectedIndex(int)
への呼び出しはAWT EventQueue
で行われます。
関連する問題
- 1. JTabbedPane:アクティブなタブでのみアクションを実行する方法
- 2. プロジェクトを実行すると、以前に選択したファイルをテキストボックスに表示する方法
- 3. CSS - 選択したタブを強調表示します
- 4. WPFでコンボボックスのアイテムを選択してアクションを実行する
- 5. JTabbedPaneのタブを前面に移動
- 6. iphone dev:選択したタブ項目の選択解除(または非表示)
- 7. JtabbedPaneにタブのタイトルを表示しない方法は?
- 8. 日付選択した日の前後に日を表示することを選択します。
- 9. 現在選択されているタブではなく、クリックされたタブを閉じます。JTabbedPane
- 10. 選択した行を強調表示する
- 11. jQueryタブ - 以前に選択したタブのインデックスを取得します。
- 12. リストビューから次のタブに選択した項目を表示します。android
- 13. Qt:QTabBarの選択されたタブの境界線を非表示にする
- 14. JQuery UIタブは以前に選択されたタブを取得します
- 15. アップロード前に選択した画像を表示
- 16. JTabbedPaneでタブをドラッグするには
- 17. JTabbedPane:タブ自体の前後のコンポーネント
- 18. リストボックスVB.netで選択した各項目に対してアクションを実行
- 19. クラスで作成された複数のタブ(jtabbedpaneから)で1つのアクションを実行
- 20. 実行時にinstallerpluginのInstallerpaneを選択的に表示
- 21. 選択したリンクボックスを非表示にするには
- 22. ウィンドウココアプログラミングで選択したファイルパス/名前を表示
- 23. 行を選択した後にtableviewサブタイトルを表示
- 24. PHPはアップロード前に選択した画像を表示します
- 25. 選択した文字列の上に2行を表示する方法は?
- 26. レンダリングする前にjQueryUIタブを非表示にするには?
- 27. 選択した行を表示するiPhoneシミュレータのスナップショットを取る方法
- 28. UITableViewから選択した行データをUIButtonに表示
- 29. 編集後に選択した行をUITableで表示
- 30. JTabbedPaneのタブのサイズを設定する
urx返信用thanx –