JTabbedPane의 모양과 느낌을 효과적으로 업데이트
Swing 애플리케이션에서 JTabbedPane을 사용하면 탭 창을 생성할 수 있습니다. 때로는 애플리케이션의 룩앤필(L&F)을 동적으로 변경해야 하는 경우도 있습니다. 그러나 이렇게 하면 항상 JTabbedPane이 예상대로 업데이트되지 않을 수 있습니다.
문제: JTabbedPane에 새 탭을 추가한 후 L&F 변경이 새 탭에 반영되지 않습니다.
해결책: 이 문제를 해결하려면 다음을 고려하십시오. 접근 방식:
import javax.swing.*; import javax.swing.UIManager.LookAndFeelInfo; import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class JTabbedPaneLookAndFeelUpdate { public static void main(String[] args) { SwingUtilities.invokeLater(() -> { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.addTab("Tab 1", new JPanel()); frame.add(createToolbar(tabbedPane), BorderLayout.NORTH); frame.add(tabbedPane, BorderLayout.CENTER); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); }); } private static JToolBar createToolbar(JTabbedPane tabbedPane) { List<LookAndFeelInfo> availableLooks = new ArrayList<>(Arrays.asList(UIManager.getInstalledLookAndFeels())); JComboBox<LookAndFeelInfo> lookAndFeelComboBox = new JComboBox<>(availableLooks.toArray(new LookAndFeelInfo[0])); lookAndFeelComboBox.addActionListener(e -> { try { LookAndFeelInfo selectedLookAndFeel = (LookAndFeelInfo) e.getSource(); UIManager.setLookAndFeel(selectedLookAndFeel.getClassName()); SwingUtilities.updateComponentTreeUI(tabbedPane); } catch (Exception ex) { ex.printStackTrace(); } }); JToolBar toolbar = new JToolBar(); toolbar.add(new JLabel("Look and Feel:")); toolbar.add(lookAndFeelComboBox); return toolbar; } }
설명:
이 솔루션은 동적 L&F 변경을 허용하여 다음을 보장합니다. 새로 추가된 탭과 함께 JTabbedPane은 선택된 탭을 반영합니다. 엘&에프.
위 내용은 Swing에 새 탭을 추가한 후 JTabbedPane의 모양과 느낌을 동적으로 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!