2010-05-30 13 views
7

Jak mogę sprawdzić, czy zakładka w instancji JTabbedPane jest aktywna, czy nie, w klasie samej karty (klasa zagnieżdżona), a nie w klasie otaczającej?Jak sprawdzić, czy zakładka jest aktywna czy nie w JTabbedPane?

Wiem, że istnieje metoda booloean isEnabledAt(int index);, ale ta metoda może być wywołana tylko w klasie otaczającej. Podczas gdy chcę sprawdzić, czy zakładka jest aktualnie zaznaczona w samej klasie tabulacji (klasa zagnieżdżona).

Czy ktoś może zasugerować, w jaki sposób?

Odpowiedz

13

Twój komponent ma parent, ewentualnie JTabbedPane. JTabbedPane ma metody takie jak getSelectedIndex() lub getSelectedComponent().

+0

Dziękuję. Ale jak mogę wywołać te metody w zagnieżdżonej klasie JTabbedPane? jako że trzeba sprawdzić, czy zakładka jest wybrana, czy nie, i jeśli muszę, muszę zaktualizować zawartość, usuwając starą wersję komponentu i zastępując ją nową. Jak to osiągnąć? – Supereme

7

Wiem, że to stary temat, ale znalazłem go, gdy szukałem rozwiązania podobnego (choć nieco innego) problemu.

Aby ustalić, która zakładka została wybrana, należy użyć detektora ChangeEvent. Jest to bardzo prosty sposób wykonywania akcji po wybraniu karty. Mam nadzieję, że to pomoże komuś innemu, chociaż jest to stary temat.

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 .... 
    } 
}