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. のJavaのJTabbedPane - アクションはすぐにJTabbedPaneのを使用して、選択したタブ
- 2. JTabbedPane:アクティブなタブでのみアクションを実行する方法
- 3. JTabbedPaneアクションが実行されました
- 4. 表示事前に選択した値
- 5. プロジェクトを実行すると、以前に選択したファイルをテキストボックスに表示する方法
- 6. CSS - 選択したタブを強調表示します
- 7. 一部の非表示タブ(jQuery)で選択したタブのインデックス
- 8. JTabbedPaneのタブを前面に移動
- 9. ウィンドウがxamlを表示する前にアクションを実行するボタン
- 10. WPFでコンボボックスのアイテムを選択してアクションを実行する
- 11. JtabbedPaneにタブのタイトルを表示しない方法は?
- 12. 選択前の行数を表示するドロップダウン
- 13. jtabbedpaneで選択したタブの背景色を変更するにはどうすればいいですか?
- 14. 現在選択されているタブではなく、クリックされたタブを閉じます。JTabbedPane
- 15. iphone dev:選択したタブ項目の選択解除(または非表示)
- 16. 選択したタブは内部に表示されません
- 17. AngularJsの以前に選択したタブに戻る
- 18. javafxでタブが選択されているときに何らかのアクションを実行するには?
- 19. jQueryタブ - 以前に選択したタブのインデックスを取得します。
- 20. 日付選択した日の前後に日を表示することを選択します。
- 21. JTabbedPaneでタブをドラッグするには
- 22. 選択ボックスに「選択したオプション」を表示しますか?
- 23. XamarinフォームUWPで選択したタブを強調表示
- 24. 選択した行を強調表示する
- 25. リストビューから次のタブに選択した項目を表示します。android
- 26. Qt:QTabBarの選択されたタブの境界線を非表示にする
- 27. JQuery UIタブは以前に選択されたタブを取得します
- 28. 前の選択に基づいて次の選択ボックスを表示する
- 29. JTabbedPane:タブ自体の前後のコンポーネント
- 30. MD-表示]を選択し、すでに選択された値
urx返信用thanx –