Maison > Java > javaDidacticiel > Pourquoi mon Swing JTabbedPane ne met-il pas à jour son apparence après avoir modifié l'UIManager ?

Pourquoi mon Swing JTabbedPane ne met-il pas à jour son apparence après avoir modifié l'UIManager ?

Susan Sarandon
Libérer: 2024-11-30 16:36:11
original
290 Les gens l'ont consulté

Why Doesn't My Swing JTabbedPane Update its Look and Feel After Changing the UIManager?

L'apparence et la convivialité ne sont pas mises à jour dans Swing JTabbedPane

Lors de la modification de l'apparence et de la convivialité d'une application Java Swing à l'aide d'un menu, les modifications peuvent ne pas être reflétées dans un nouveau fichier ajouté. JTabbedPane. Malgré l'utilisation de SwingUtilities.updateComponentTreeUI(), le problème persiste.

La solution implique de mettre à jour l'interface utilisateur de l'ensemble du cadre, y compris tous les JTabPanes qu'il contient :

Window windows[] = Frame.getWindows();
for(Window window : windows) {
    SwingUtilities.updateComponentTreeUI(window);
}
Copier après la connexion

En étendant ce concept, un une mise en œuvre plus robuste peut être obtenue. Voici un exemple qui met à jour dynamiquement l'apparence d'une application Swing, y compris tous les JTabPanes :

public class JTabbedText {

    // ... (code omitted for brevity)

    private static JToolBar createToolBar(final Component parent) {
        // ... (code omitted for brevity)

        combo.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                int index = combo.getSelectedIndex();
                try {
                    UIManager.setLookAndFeel(
                        available[index].getClassName());

                    // Update the UI of all windows
                    Window[] windows = Window.getWindows();
                    for (Window window : windows) {
                        SwingUtilities.updateComponentTreeUI(window);
                    }
                } catch (Exception e) {
                    e.printStackTrace(System.err);
                }
            }
        });

        // ... (code omitted for brevity)
    }

    // ... (code omitted for brevity)
}
Copier après la connexion

Cette approche garantit que les modifications apportées à l'apparence et à la convivialité se propageront à toutes les parties de l'application, y compris JTabPanes, offrant une expérience utilisateur cohérente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal