Bringing Registerkarte Front in JTabbedPane
-
22-07-2019 - |
Frage
Wenn ich setSelectedComponent
oder setSelectedIndex
auf einem JTabbedPane
-Objekt verwenden, kommt die Platte immer in meinem UI auf. Aber manchmal die Lasche mit dem Panel verbunden ist verborgen bleibt. Mit anderen Worten, die Registerkarte nicht auf einen sichtbaren Teil des Registerteilfenster scrollen.
Wie kann ich dieses Problem beheben? Ich habe versucht, einen Index der käsig wählen, dann gewünschten Index wählen, sowie mehrere andere elegantere Dinge, aber Arrrrgh !!
Hilf mir,, wenn Sie können.
Danke, Todd
Lösung
Ich denke, Ihr Anruf nicht auf EDT erfolgt. Wickeln Sie es mit SwingUtilities.invokeLater
Andere Tipps
Hier ist ein Rüttler Sie verwenden können, wenn Sie eine Methode, die Swing-Komponenten verändert, oder ihre Modelle und so muss auf dem EDT aufgerufen werden, sondern können aus einem Hintergrund-Thread aufgerufen werden. Dadurch wird sichergestellt, func immer läuft auf dem 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
}