Codenameone 自定义搜索筛选器和日历代号1

Codenameone 自定义搜索筛选器和日历代号1,codenameone,Codenameone,我有一个搜索字段,但我想自定义它显示的文本提示,如“搜索”,我想将其更改为我的语言,即“Busca”,如何在下面的代码中执行此操作: Container list = new Container(); hi.getToolbar().addSearchCommand(e -> { String text = (String)e.getSource(); if(text == null || text.length() == 0) { // clear sea

我有一个搜索字段,但我想自定义它显示的文本提示,如“搜索”,我想将其更改为我的语言,即“Busca”,如何在下面的代码中执行此操作:

Container list = new Container();
hi.getToolbar().addSearchCommand(e -> {
    String text = (String)e.getSource();
    if(text == null || text.length() == 0) {
        // clear search
        for(Component cmp : list) {
            cmp.setHidden(false);
            cmp.setVisible(true);
        }
        hi.getContentPane().animateLayout(150);
    } else {
        text = text.toLowerCase();
        for(Component cmp : list) {
            Button mb = (Button)cmp;
            String line1 = mb.getText();
            boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1;
            mb.setHidden(!show);
            mb.setVisible(show);
        }
        hi.getContentPane().animateLayout(150);
    }
}, 4);
String lang = L10NManager.getInstance().getLanguage();
        if(lang != null) {
            lang = lang.toLowerCase();
            switch(lang) {
            case "en":
                UIManager.getInstance().setBundle(theme.getL10N("portuguese", "pt"));
                break;
            }
        }
顺便问一下,我该如何设置一个以本地语言显示的日历的代码名

编辑:

我看了教程,但我有问题,我想我没有正确设置,看:

这就是我想要改变的:

我应该这样做吗

hi.putClientProperty("Search", hi.getToolbar());
我的代码如下:

Container list = new Container();
hi.getToolbar().addSearchCommand(e -> {
    String text = (String)e.getSource();
    if(text == null || text.length() == 0) {
        // clear search
        for(Component cmp : list) {
            cmp.setHidden(false);
            cmp.setVisible(true);
        }
        hi.getContentPane().animateLayout(150);
    } else {
        text = text.toLowerCase();
        for(Component cmp : list) {
            Button mb = (Button)cmp;
            String line1 = mb.getText();
            boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1;
            mb.setHidden(!show);
            mb.setVisible(show);
        }
        hi.getContentPane().animateLayout(150);
    }
}, 4);
String lang = L10NManager.getInstance().getLanguage();
        if(lang != null) {
            lang = lang.toLowerCase();
            switch(lang) {
            case "en":
                UIManager.getInstance().setBundle(theme.getL10N("portuguese", "pt"));
                break;
            }
        }
我有个例外:

java.lang.NullPointerException
    at com.consultaprodutos.AplicacaoPrincipal.init(AplicacaoPrincipal.java:76)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.codename1.impl.javase.Executor$1$1.run(Executor.java:118)
    at com.codename1.ui.Display.processSerialCalls(Display.java:1129)
    at com.codename1.ui.Display.mainEDTLoop(Display.java:924)
    at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
    at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
OBS:我在项目属性中找不到VM选项,无法设置-Defuser.language=pt签出。其要点是创建一个资源包并安装它,然后所有内容都会自动更新为新的本地化文本


键与文本匹配,因此如果文本为“搜索”,只需将“搜索”添加到资源包和翻译值。

编辑了我的问题,我想我遗漏了一些内容。第76行是什么?您正在使用哪个ide?Eclipse,在第76行中有
UIManager.getInstance().setBundle(theme.getL10N(“葡萄牙语”、“pt”)
看起来
主题
为空。如何初始化它?我通过
UIManager.initNamedTheme(“/theme”,“Business”)初始化它