【问题标题】:Switching theme by button Codename One按键切换主题代号一
【发布时间】:2018-04-06 19:10:29
【问题描述】:

我在更改主题时遇到问题,我有一个默认主题和一个名为蓝色的主题,我通过按一个按钮更改为蓝色,然后它运行良好,直到我回到我的主菜单然后它变回我的默认主题通过覆盖我的蓝色主题。我想避免它。

这是我的 initVars:

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 中设置一些内容以避免覆盖吗?

【问题讨论】:

    标签: java codenameone


    【解决方案1】:

    我建议盯着一个新项目。您正在使用已弃用的旧 GUI 构建器。

    假设两个主题都在主 res 文件中,您不需要这样做。您只需要一个资源文件的引用,您可以使用 fetchResourceFile() 在旧的 GUI 构建器中获取该文件。

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

    【讨论】:

    • 我只能通过右键单击我的 GuiForm.java 然后选择带有 Codename One 图标的 Gui Builder 选项来打开新的 GuiBuilder,而不是去打开方式 > GuiBuilder 不工作。还有 Mapper 主题我只能在创建新项目时由向导设置它,之后如果我决定通过编辑 theme.res 来设置 Mapper 主题,那么 Mapper 主题就会像空白主题一样加载。它只发生在 Mapper 主题中。
    • 我现在正在使用新的 Gui Builder,我创建了一个标签并单击 [Pick Image],出现一个菜单 "Choose from where to pick an image" 然后我选择 "from res File",但我不能在那里找到我的图像。我应该在哪里将我的自定义图像添加到我的 src/res/theme 目录?有大小/分辨率限制吗?
    • 添加图片后是否保存了资源文件?您是否关闭并重新打开了 gui 构建器?
    • 谢谢,它工作得很好,我不知道将图像添加到资源文件中的正确方法是编辑theme.res,我将文件直接放置到文件夹目录中。 Mapper 主题怎么样,如何修复该错误?
    • 每当我使用新的 Gui Builder 为按钮添加动作事件时,我都会收到此错误:Errors occurred during the build. Errors running builder 'Integrated External Tool Builder' on project 'My Project'. Ant build D:\Documents\Rafa\eclipse-workspace\My Project\build.xml already in progress. Concurrent Ant builds are possible if you specify to build in a separate JRE. Ant build D:\Documents\Rafa\eclipse-workspace\My Project\build.xml already in progress. Concurrent Ant builds are possible if you specify to build in a separate JRE. 它仍然有效,但我应该担心吗?
    猜你喜欢
    • 1970-01-01
    • 2018-01-04
    • 2021-04-26
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    相关资源
    最近更新 更多