代码之家  ›  专栏  ›  技术社区  ›  Simple

按按钮代码切换主题1

  •  2
  • Simple  · 技术社区  · 6 年前

    我在更改主题时遇到了问题,我有一个默认主题和一个名为蓝色的主题,我通过按按钮更改为蓝色,然后它工作正常,直到我返回主菜单,然后它通过覆盖我的蓝色主题更改回默认主题。我想避免它。

    这是我的初始化变量:

    protected void initVars(Resources res){
        Toolbar.setOnTopSideMenu(false);
    }
    

    这是我进行更改的按钮:

    @Override
    protected void onMain_Button4Action(Component c, ActionEvent event) {
         UIManager.initNamedTheme("/theme", "Blue");
         Display.getInstance().getCurrent().refreshTheme();
    }
    

    这是我返回主菜单的按钮功能:

    back.addActionListener(new ActionListener() 
            {
                public void actionPerformed(ActionEvent ev) 
                {
                    new StateMachine("/theme");
                }
            });
    

    我应该在initVars或ActionListener中设置一些内容来避免重写吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Shai Almog    6 年前

    我建议重新开始一个新项目。您正在使用已弃用的旧GUI生成器。

    假设两个主题都在主res文件中,则不需要这样做。您只需要引用资源文件,即可使用 fetchResourceFile()

    Hashtable themeData = theme.getTheme("Theme Name");
    UIManager.getInstance().setThemeProps(themeData);
    Display.getInstance().getCurrent().refreshTheme();