如何在一个类中进行更改在另一个类中生效?

时间:2018-05-09 11:50:45

标签: java class user-interface

我正在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);
            }
        }
    });
}

0 个答案:

没有答案