我正在java中设计一个下载管理器的GUI,在程序的主框架中(这是一个JFrame)有几个按钮,其中一个是Settings按钮,它打开一个JDialog,在Settings部分用户可以选择几种默认外观(如钢铁,雨云等)
问题是,我想将外观和感觉的变化应用于设置部分和主机,但由于设置部分是一个不同的框架和类,更改只在设置框架中生效,我不知道如何进行此更改影响主面板。
代码(Settings类的一部分):
UIManager.LookAndFeelInfo[] LAFInfo = UIManager.getInstalledLookAndFeels();
String [] LookAndFeels = new String[LAFInfo.length];
for (int i = 0; i < LAFInfo.length; i++) {
LookAndFeels [i] = LAFInfo[i].getName();
JComboBox<String> lookAndFeelChoices = new JComboBox<>(LookAndFeels);
lookAndFeelChoices.setBounds(200,220,200,30);
settings.add(lookAndFeelChoices);
lookAndFeelChoices.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try {
UIManager.setLookAndFeel(LAFInfo[lookAndFeelChoices.getSelectedIndex()].getClassName());
SwingUtilities.updateComponentTreeUI(Settings.super.getContentPane())
} catch (Exception ei) {
System.out.println(ei);
}
}
});
}