Domanda

Quando uso setSelectedComponent o setSelectedIndex su un oggetto JTabbedPane , il pannello compare sempre nella mia IU. Tuttavia, a volte la scheda associata al pannello rimane nascosta. In altre parole, la scheda non scorre fino a una parte visibile del riquadro a schede.

Come posso risolvere questo problema? Ho provato il formaggio selezionare un indice, quindi selezionare l'indice desiderato, così come molte altre cose più eleganti, ma arrrrgh !!

Aiutami se puoi.

Grazie, Todd

È stato utile?

Soluzione

Penso che la tua chiamata non sia stata effettuata su EDT. Avvolgilo con SwingUtilities.invokeLater

Altri suggerimenti

Ecco un modello che puoi usare se hai un metodo che altera i componenti swing o i loro modelli e quindi deve essere chiamato sull'EDT, ma può essere chiamato da un thread in background. Ciò garantisce che func sempre sia eseguito sull'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
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top