Membetulkan Isu Kemas Kini Rupa dan Rasa dalam Swing JTabbedPane
Dalam aplikasi Java Swing, mengubah suai rupa dan rasa selalunya melibatkan pengemaskinian UI semua komponen. Walau bagaimanapun, isu timbul apabila menambah tab baharu pada JTabbedPane, di mana tab baharu mungkin tidak menggunakan rupa dan rasa yang dikemas kini.
Untuk menangani perkara ini, anda boleh menggunakan kaedah SwingUtilities.updateComponentTreeUI(window). Kaedah ini mengemas kini UI tetingkap, termasuk JTabbedPane, yang disediakan sebagai parameter tetingkap.
Penyelesaian Diperbaiki
Walau bagaimanapun, seperti yang ditunjukkan oleh @Andrew dalam respons terdahulu, kaedah ini sahaja mungkin tidak mengemas kini UI JTabbedPane secukupnya. Untuk mengatasi had ini, anda boleh mempertimbangkan untuk melaksanakan penyelesaian yang lebih komprehensif:
import java.awt.Window; import java.util.Arrays; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; public class JTabbedPaneLookAndFeelFix { public static void updateLookAndFeel(JTabbedPane tabbedPane) { // Obtain an array of all windows Window[] windows = Frame.getWindows(); // Update the UI of each window Arrays.stream(windows) .forEach(window -> SwingUtilities.updateComponentTreeUI(window)); // Specifically target the JTabbedPane instance for UI update SwingUtilities.updateComponentTreeUI(tabbedPane); } }
Pendekatan yang dikemas kini ini memastikan bukan sahaja tetingkap induk tetapi juga JTabbedPane sendiri menerima kemas kini UI, dengan berkesan menyelesaikan sebarang ketidakkonsistenan rupa dan rasa .
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Rupa dan Rasa dengan Swing JTabbedPane Selepas Kemas Kini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!