Rumah > Java > javaTutorial > Mengapa JTabbedPane Swing Saya Tidak Mengemas kini Rupa dan Rasanya Selepas Menukar UIManager?

Mengapa JTabbedPane Swing Saya Tidak Mengemas kini Rupa dan Rasanya Selepas Menukar UIManager?

Susan Sarandon
Lepaskan: 2024-11-30 16:36:11
asal
291 orang telah melayarinya

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

Pandangan dan Rasa Tidak Kemas Kini dalam Swing JTabbedPane

Apabila mengubah rupa dan rasa aplikasi Java Swing menggunakan menu, perubahan mungkin tidak ditunjukkan dalam yang baru ditambah JTabbedPane. Walaupun menggunakan SwingUtilities.updateComponentTreeUI(), isu ini berterusan.

Penyelesaian melibatkan pengemaskinian UI keseluruhan bingkai, termasuk mana-mana JTabPanes di dalamnya:

Window windows[] = Frame.getWindows();
for(Window window : windows) {
    SwingUtilities.updateComponentTreeUI(window);
}
Salin selepas log masuk

Dengan memperluaskan konsep ini, a pelaksanaan yang lebih mantap dapat dicapai. Berikut ialah contoh yang mengemas kini rupa dan rasa aplikasi Swing secara dinamik, termasuk mana-mana 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)
}
Salin selepas log masuk

Pendekatan ini memastikan perubahan pada rupa dan rasa akan disebarkan ke semua bahagian aplikasi, termasuk JTabPanes, memberikan pengalaman pengguna yang konsisten.

Atas ialah kandungan terperinci Mengapa JTabbedPane Swing Saya Tidak Mengemas kini Rupa dan Rasanya Selepas Menukar UIManager?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan