Heim >Java >javaLernprogramm >Warum werden Look-and-Feel-Änderungen nicht auf neue JTabbedPane-Registerkarten in Swing angewendet?
Look-and-Feel-Updates in Swing JTabbedPane nach dem Hinzufügen von Tabs
Problem: Beim Hinzufügen eines neuen Tabs zu einem JTabbedPane In einer Swing-Anwendung gelten die über das Anwendungsmenü vorgenommenen Look-and-Feel-Änderungen nicht für die neue tab.
Lösung:
Um sicherzustellen, dass das Erscheinungsbild im JTabbedPane aktualisiert wird, einschließlich neuer Registerkarten, verwenden Sie den folgenden erweiterten Ansatz, der aus den Kommentaren von @Andrew abgeleitet wurde:
int index = combo.getSelectedIndex(); try { UIManager.setLookAndFeel( available[index].getClassName()); // Update UI for all windows including JTabbedPane Window windows[] = Frame.getWindows(); for(Window window : windows) { SwingUtilities.updateComponentTreeUI(window); } } catch (Exception e) { e.printStackTrace(System.err); }
Zusätzlich zur Aktualisierung des Erscheinungsbilds einzelner Komponenten durchläuft dieser Ansatz alle geöffneten Fenster in der Anwendung und aktualisiert diese UI-Komponenten, die sicherstellen, dass alle neu erstellten JTabbedPane-Registerkarten auch das aktualisierte Erscheinungsbild erhalten.
Das obige ist der detaillierte Inhalt vonWarum werden Look-and-Feel-Änderungen nicht auf neue JTabbedPane-Registerkarten in Swing angewendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!