Heim >Java >javaLernprogramm >Warum werden Look-and-Feel-Änderungen nicht auf neue JTabbedPane-Registerkarten in Swing angewendet?

Warum werden Look-and-Feel-Änderungen nicht auf neue JTabbedPane-Registerkarten in Swing angewendet?

Linda Hamilton
Linda HamiltonOriginal
2024-12-26 10:29:12562Durchsuche

Why Don't Look and Feel Changes Apply to New JTabbedPane Tabs in Swing?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn