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

¿Fue útil?

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
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top