Trayendo la pestaña al frente en JTabbedPane
-
22-07-2019 - |
Pregunta
Cuando uso setSelectedComponent
o setSelectedIndex
en un objeto JTabbedPane
, el panel siempre aparece en mi IU. Sin embargo, a veces la pestaña asociada con el panel permanece oculta. En otras palabras, la pestaña no se desplaza a una parte visible del panel con pestañas.
¿Cómo puedo solucionar esto? He probado el cursi seleccione un índice, luego seleccione el índice deseado, así como varias otras cosas más elegantes, ¡pero arrrrgh!
Ayúdame si puedes.
Gracias Todd
Solución
Creo que su llamada no se realiza en EDT. Envuélvalo con SwingUtilities.invokeLater
Otros consejos
Aquí hay un patrón que puede usar si tiene un método que altera los componentes de oscilación, o sus modelos, por lo que debe llamarse en el EDT, pero puede llamarse desde un hilo de fondo. Esto garantiza que func siempre se ejecute en el EDT:
void func(final Type1 arg1, final Type2 arg2) {
if (!SwingUtilities.isEventDispatchThread()) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
func(arg1, arg2);
}
});
return;
}
// method code goes here
}