2010-05-30 6 views
7

Wie kann ich überprüfen, ob eine Registerkarte in einer JTabbedPane-Instanz aktiv ist oder nicht, in der Klasse der Registerkarte (geschachtelte Klasse) selbst und nicht in der einschließenden Klasse?Wie überprüft man, ob die Registerkarte in JTabbedPane aktiv ist oder nicht?

Ich weiß, dass es eine Methode booloean isEnabledAt(int index); gibt, aber diese Methode kann nur in der umschließenden Klasse aufgerufen werden. Während ich überprüfen möchte, ob die Registerkarte derzeit innerhalb der Tab-Klasse selbst (geschachtelte Klasse) ausgewählt ist.

Kann mir bitte jemand vorschlagen, wie?

Antwort

13

Ihre Komponente hat eine parent, möglicherweise die JTabbedPane. hat Methoden wie getSelectedIndex() oder getSelectedComponent().

+0

Vielen Dank. Aber wie kann ich diese Methoden in der geschachtelten Klasse von JTabbedPane aufrufen? Es muss überprüft werden, ob eine Registerkarte ausgewählt ist oder nicht, und wenn dies der Fall ist, muss ich den Inhalt aktualisieren, indem ich die alte Version einer Komponente entferne und sie durch eine neue ersetze. Wie erreiche ich das? – Supereme

7

Ich weiß, dass dies ein altes Thema ist, aber ich fand es bei der Suche nach einer Lösung für ein ähnliches (wenn auch etwas anderes) Problem.

Um festzustellen, welche Registerkarte ausgewählt wurde, verwenden Sie einen Listener ChangeEvent. Dies ist eine sehr einfache Möglichkeit, eine Aktion auszuführen, sobald eine Registerkarte ausgewählt wird. Hoffentlich hilft das jemand anderem, obwohl dies ein altes Thema ist.

private void zakladkiStateChanged(javax.swing.event.ChangeEvent evt) 
{          
    if (zakladki.getTitleAt(zakladki.getSelectedIndex()).equals("tab title here")) 
    { 
     // what you wish to do when tab is selected here .... 
    } 
} 
Verwandte Themen