我试图更改表单工具栏中所有元素的颜色:
public class LoginForm extends Form{
private Form formSplash;
public LoginForm(Resources theme) {
super("Login", new BorderLayout());
setUIID("rush-login");
getToolbar().getTitleComponent().setUIID("rush-login-title");
getToolbar().getAllStyles().setBgTransparency(0);
getToolbar().setBackCommand("Back", e -> {
if(formSplash != null) {
formSplash.showBack();
}
});
setScrollable(false);
}
public void setFormSplash(Form formSplash) {
this.formSplash = formSplash;
}
}
我确实看到标题的颜色发生了变化,但后面的图标仍然是原始颜色:
是否可以为工具栏的每个元素使用相同的颜色?
答案 0 :(得分:1)
我不确定这是否适用于setBackCommand
,但您可以在工具栏上使用findCommandComponent
并将UIID设置为您想要的任何内容:
Button b = toolbar.findCommandComponent(cmd);
setBackCommand
会返回一个Command
对象,您应该可以使用该对象,尽管您可能需要在左侧方法中使用add命令来代替此用例。
答案 1 :(得分:0)
通常,可以从主题编辑器更改材质图标的颜色,从而调整前景色的默认样式。但这仅在不激活CN1 css支持时有效。
如果您使用css支持或要使用其他图标,这是一个样式示例,用于设置材质图标的样式,尤其是back命令:
Form my Form = new Form ();
int color = 0xffffff;
Font materialFontBack = Font.createTrueTypeFont("fontello-back", "fontello-back.ttf");
FontImage imageBack = FontImage.createFixed("\ue800", materialFontBack, color, 40, 40);
Command back = new Command("Back") {
@Override
public void actionPerformed(ActionEvent evt) {
formStart.showBack();
}
};
myForm.getToolbar().setBackCommand(back);
ToolBar myToolbar = myForm.getToolbar();
Button buttonToolbar = myToolbar.findCommandComponent(back);
buttonToolbar.setIcon(imageBack);
here是有关导入字体图像的指南。