2010-05-30 30 views
7

¿Cómo puedo verificar si una pestaña en una instancia de JTabbedPane está activa o no, en la clase de la pestaña (clase anidada) y no en la clase adjunta?¿Cómo comprobar si la pestaña está activa o no en JTabbedPane?

Sé que hay un método booloean isEnabledAt(int index);, pero este método solo se puede invocar en la clase adjunta. Mientras que quiero comprobar si la pestaña está actualmente seleccionada dentro de la propia clase de pestañas (clase anidada).

¿Alguien puede sugerir cómo?

Respuesta

13

Su componente tiene un parent, finalmente el JTabbedPane. JTabbedPane tiene métodos como getSelectedIndex() o getSelectedComponent().

+0

Gracias u. Pero, ¿cómo puedo llamar a estos métodos en la clase anidada de JTabbedPane? ya que la necesidad es ver si se selecciona una pestaña o no y, en caso afirmativo, tengo que actualizar el contenido eliminando la versión anterior de un componente y reemplazándola por una nueva. ¿Cómo lograrlo? – Supereme

7

Sé que este es un tema antiguo, pero lo encontré cuando buscaba una solución a un problema similar (aunque ligeramente diferente).

Para determinar qué pestaña se seleccionó, utilice un oyente ChangeEvent. Esta es una manera muy simple de realizar una acción cada vez que se selecciona una pestaña. Con suerte, esto ayudará a otra persona, aunque este es un tema antiguo.

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