Po kliknięciu jednego z paneli w kodzie JTabbedPane
, należy wykonać kilka czynności na początku. Powiedz na przykład, że muszę sprawdzić nazwę użytkownika i hasło. Tylko jeśli te pasują, należy wykonać określone operacje panelu. Czy możesz zaproponować jakieś metody?JTabbedPane: Czynności wykonywane przed wyświetleniem wybranej karty
Odpowiedz
Nie wiesz, w pełni rozumiem Twoje pytanie, ale chciałbym zrobić coś takiego:
- Dodaj ChangeListener do JTabbedPane słuchać na pierwszej zakładce kliknięcia.
- Po wystąpieniu zdarzenia ChangeEvent wykonaj logowanie w wątku tła za pomocą SwingWorker.
- Jeśli logowanie zakończy się pomyślnie, wykonaj wymagane operacje interfejsu użytkownika w wątku wysyłki zdarzeń.
Na przykład:
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();
}
}
});
Akcja zmienić kartę jest wyzwalany przez słuchacza myszy w klasie UI. przechodzi i sprawdza, czy na klikniętej współrzędnej znajduje się zakładka, a jeśli tak, czy zakładka jest włączona. Jeśli to kryterium zostanie spełnione, zadzwoni pod numer setSelectedIndex(int)
pod numer JTabbedPane
. Aby przechwycić zmianę tabulatora, można zastąpić setSelectedIndex(int)
, aby uruchomić sprawdzanie uprawnień. Po zatwierdzeniu uprawnień możesz zadzwonić pod numer super.setSelectedIndex(int)
. to powinno robić, co chcesz.
Należy pamiętać, że jeśli kontrola uprawnień jest długotrwałym połączeniem (tj. Połączeniem z bazą danych lub serwerem), należy użyć czegoś takiego, jak SwingWorker
przerwać przetwarzanie, tak aby sprawdzanie uprawnień odbywało się z poziomu AWT EventQueue
a wywołanie super.setSelectedIndex(int)
odbywa się na AWT EventQueue
.
- 1. setRequestedOrientation przed wyświetleniem ProgressDialog prowadzi do awarii
- 2. Alertify jest wykonywane przed potwierdzeniem?
- 3. Jak znaleźć szerokość widoku przed wyświetleniem widoku?
- 4. Ładowanie aktywności w tle przed jej wyświetleniem
- 5. Jak usunąć opóźnienie przed wyświetleniem QToolTip?
- 6. Powtórne przechodzenie między elementami Tab w JTabbedPane
- 7. Zmień tytuł paska nawigacyjnego na podstawie wybranej karty?
- 8. Qt: ukrywanie granicy dla wybranej karty w QTabBar
- 9. Jak Style Actionbar, tło karty w wybranej zakładce
- 10. TabControl - uniemożliwiając użytkownikowi zmianę wybranej karty: MessageBox powodujący błąd
- 11. Uruchamianie widoku logowania przed wyświetleniem kontrolera paska tabulacji
- 12. pokaż ładowanie przed wyświetleniem wysłać wynik w jquery
- 13. Handling powiadomienie na pasku stanu przed wyświetleniem go
- 14. Wymuszenie elementu przestawnego do wstępnego wczytania przed jego wyświetleniem
- 15. Wyświetlanie alertu od delegata aplikacji przed wyświetleniem alertu z viewDidload
- 16. Pokaż wskaźnik postępu przed wyświetleniem listy wypełnień za pomocą CursorLoader
- 17. Jak długo przed wyświetleniem przeglądu aplikacji w iTunes Connect?
- 18. AngularJS: $ viewContentLoaded został uruchomiony przed wyświetleniem częściowego widoku.
- 19. Jak wyświetlić element zastępczy przed wyświetleniem komórek widoku tabeli?
- 20. WordPress: Sprawdź, czy istnieją wcześniejsze posty przed wyświetleniem linku
- 21. Nie można zmienić zakładki w JTabbedPane
- 22. Dlaczego wykonywanie autoryzacji onAuthorization jest wykonywane przed uwierzytelnieniem?
- 23. Ustaw rozmiar zakładki w JTabbedPane
- 24. Dodawanie ikony na karcie JTabbedpane
- 25. RoutedCommands Wykonywane i Podgląd Wykonywane zdarzenia
- 26. Jak sprawdzić, czy zakładka jest aktywna czy nie w JTabbedPane?
- 27. Aktualizuj znaczek nie wybranej zakładkiBarItem w Swift
- 28. Jak dodać przycisk zamknięcia do zakładki JTabbedPane?
- 29. Jak załadować akcję fragmentu oncreate() wybranej karty akcji tylko, jeśli wybrano tę kartę?
- 30. Kiedy wykonywane są funkcje javascript
thanx za odpowiedź ur .. –