Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得要在自定义图像选择器对话框中渲染的Codenameone FontImage和描述的列表?_Image_Codenameone - Fatal编程技术网

如何获得要在自定义图像选择器对话框中渲染的Codenameone FontImage和描述的列表?

如何获得要在自定义图像选择器对话框中渲染的Codenameone FontImage和描述的列表?,image,codenameone,Image,Codenameone,我正在使用CN1构建我的应用程序,我想创建一个屏幕,用户可以在其中搜索并从可用材料字体图像列表中选择。请告诉我如何获取此列表,即我需要搜索字符代码\uE900和描述。我非常想复制CN1在其酷炫的新GUI构建器中构建的对话框 通过使用相同的方法,这有望意味着随着CN1团队加入更多,列表将自动增长 我曾想过将FontImage类文本从Github解构成一个可管理的列表,但我不认为这是未来的证明 一旦我有了此列表,我就可以使用以下方法将其应用于按钮平铺网格: gui_IconButton.setIco

我正在使用CN1构建我的应用程序,我想创建一个屏幕,用户可以在其中搜索并从可用材料字体图像列表中选择。请告诉我如何获取此列表,即我需要搜索字符代码\uE900和描述。我非常想复制CN1在其酷炫的新GUI构建器中构建的对话框

通过使用相同的方法,这有望意味着随着CN1团队加入更多,列表将自动增长

我曾想过将FontImage类文本从Github解构成一个可管理的列表,但我不认为这是未来的证明

一旦我有了此列表,我就可以使用以下方法将其应用于按钮平铺网格:

gui_IconButton.setIcon(
            FontImage.createFixed("\uE900", FontImage.getMaterialDesignFont(), 0xffffff, 20, 20).toImage());
尽管也许有一种更简洁的实现方法,可以提供与上图相同的LAF


非常感谢。

为该对话框所做的是:

private static List<MaterialFont> getMaterialFonts(){
    ArrayList<MaterialFont> list = new ArrayList<>();
    list.add(new MaterialFont(FontImage.MATERIAL_3D_ROTATION, "3d rotation"));
    list.add(new MaterialFont(FontImage.MATERIAL_AC_UNIT, "ac unit"));
    list.add(new MaterialFont(FontImage.MATERIAL_ACCESS_ALARM, "access alarm"));
    list.add(new MaterialFont(FontImage.MATERIAL_ACCESS_ALARMS, "access alarms"));
    list.add(new MaterialFont(FontImage.MATERIAL_ACCESS_TIME, "access time"));
    ...
}

static class MaterialFont implements Comparable<MaterialFont>{
    private char icon;
    private String description;

    public MaterialFont(char icon, String description) {
        this.icon = icon;
        this.description = description;
    }

    @Override
    public int compareTo(MaterialFont o) {
        return description.compareTo(((MaterialFont)o).description);
    }        
}

然后您可以只做一个元数据页眉和页脚,并将sed命令的输出与cat命令结合起来。

对Unix有一定的了解,但我通常可以解决问题。我会一直玩这些命令,直到有什么事情发生。谢谢
javap -classpath ~/dev/cn1/CodenameOne/dist/CodenameOne.jar com.codename1.ui.FontImage | grep MATERIAL_ | sed 's/  public static final char //' | sed 's/MATERIAL_*//g' | sed 's/;//' | sed 's/.*/    list.add(new MaterialFont(FontImage.MATERIAL_&, "&");/'