我正在使用Java构建Swing应用程序,我希望颜色保持一致。所以我可以这样做:
public class Colours {
public static final String BACKGROUND = "#D9DADE";
}
但后来我想也许恩赐会更好,所以我这样做了:
public enum ColourStyles {
BACKGROUND("#D9DADE");
private String colourValue;
private ColourStyles(String value) {
colourValue = value;
}
public String getColourValue() {
return colourValue;
}
};
但是那时使String现在成为ColourStyle类型,我无法使用Color.decode(BACKGROUND)
对其进行解码。
有没有更好的方法来完成这项工作,比如属性文件?我已经完成了Wicket但在Swing中从未遇到过相同类型的标签/颜色结构。
谢谢!
答案 0 :(得分:2)
2个选项很好,但我更喜欢第3种方式而且它使用属性文件。因此,如果要更改,则无需重新编译应用程序。
第一)
public final class Colours {
private Colours(){}
public static final BACKGROUND = "#D9DADE";
}
。 2)没关系,但你可以在枚举中添加一个方法来返回颜色。
public enum ColourStyles {
BACKGROUND("#D9DADE");
private String colourValue;
private ColourStyles(String value) {
colourValue = value;
}
public String getColourValue() {
return colourValue;
}
public Color getColour(){
return Color.decode(colourValue);
}
}
并且第3步)创建一个文件,例如lookAndFeel.properties
colour.background=#D9DADE
创建一个可以singleton
加载属性文件的类,你可以添加一个util方法来返回枚举中的颜色,这样做的好处是可以在不编译的情况下更改值再次你的申请。
4th)如果您使用的是可自定义的外观,并且您可以使用UIManager.put();
设置该属性来设置所有组件的属性。以下是Nimbus L& F Nimbus defaults