我在更改主题时遇到问题,我有一个默认主题和一个名为蓝色的主题,我通过按一个按钮更改为蓝色然后它工作正常直到我回到我的主菜单然后它变回我的默认主题覆盖我的蓝色主题。我想避免它。
这是我的初始化变量:
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 中设置一些东西以避免覆盖?
最佳答案
我建议开始一个新项目。您正在使用已弃用的旧 GUI 生成器。
假设这两个主题都在主 res 文件中,您不需要这样做。您只需要对资源文件的引用,您可以使用 fetchResourceFile()
在旧的 GUI 生成器中获取该文件。
Hashtable themeData = theme.getTheme("Theme Name");
UIManager.getInstance().setThemeProps(themeData);
Display.getInstance().getCurrent().refreshTheme();
关于java - 通过代号一按钮切换主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49676891/