我有一个字符串,它存储的颜色的名称。通过这个变量的帮助,我需要更改面板背景。如何做呢???更改面板颜色
更改面板颜色
回答
创建包含颜色的String名称和实际Color对象的映射。
编辑:
只注意到其他两个答案使用的getColor(...)方法建议。这不仅仅是神奇的工作,而且你需要在系统属性中定义颜色。我从来没有使用系统属性,但我相信你需要在启动JVM时设置它们。
你可以显示一些代码? – 2010-04-29 20:02:57
+1对于地图响应 - 因为有一个有限集合(根据OP的评论),我强烈建议遵循这个机制。这使您可以更改颜色(如OP所述),并在更改发生时让其他人接收该更改 - 即下次他们请求该颜色时。 – aperkins 2010-04-29 20:16:24
如果颜色只打算是Java支持,你可以不喜欢下面的那些:
private Color getColorByName(String colorName) {
Field[] colorFields = Color.class.getDeclaredFields();
for (Field field : colorFields) {
if (field.getName().equals(colorName.toUpper())) {
//check that this is in fact a static field,
//to make sure it is one of the colors you are looking for
int modifiers = field.getModifiers();
if ((Modifiers.STATIC & modifiers != 0)
&& (Modifiers.PUBLIC & modifiers != 0)) {
try{
return (Color)field.getValue(null);
} catch (FieldNotFoundException ex) {
//Maybe put some additional handling in here if you need it
}
}
}
}
//or return a default color
return null;
}
的几个注意事项:
- 本使用反射,所以它会 会更慢(尽管你可以, 在技术上使用它来制作颜色 地图在应用程序启动 并只参考)。
如上面其他 人所述,制作 彩色地图会更有意义。
最好是 如果不同的系统发送您 实际值 - 在 int或0.0-1.0双格式表示RGB值。那么你可以持续给他们 适当的回应。
我的建议,如果一定要使用的颜色名称,将是他们给你一组,你必须支持的名字,和你有一个错误的条件 - 无论是默认的颜色,null或抛出一个异常。
希望这会有所帮助。
- 1. 更改面板颜色
- 2. 更改背景颜色标签面板
- 3. 更改面板颜色从xcode中的主颜色
- 4. 更改面板的颜色以匹配用户主题颜色
- 5. 如何更改曲面调色板颜色?
- 6. 修改颜色选择器面板
- 7. 更改颜色
- 8. 更改颜色
- 9. 更改颜色
- 10. 更改颜色
- 11. 更改颜色
- 12. 更改颜色
- 13. 更改EditText板的颜色,无形状
- 14. 更新颜色选择器面板中的新颜色
- 15. Aptana模板颜色 - 如何更改definitiion颜色
- 16. 更改alpha更改颜色
- 17. 更改PhpStorm中警告面板的颜色
- 18. 根据评论密度更改.accordion面板的颜色
- 19. 更改sencha触摸面板的背景颜色
- 20. 更改引导面板的背景颜色
- 21. 在预览面板中更改边缘颜色
- 22. 更改手风琴面板选项卡的颜色
- 23. 从面板更改窗体背景颜色
- 24. 使用jquery更改Bootstrap面板体的背景颜色
- 25. 使用sass更改引导面板颜色
- 26. xfce4/gtk-3.0 - 更改面板DateTime小部件的文本颜色?
- 27. CSS如何更改if块中特定主面板的颜色
- 28. 如何在Delphi中动态更改TChart的面板颜色?
- 29. 更改所有tabbedpane面板java swing的颜色按钮操作
- 30. 我可以更改glui面板背景颜色吗?
您使用的颜色名称数是否有限? – Pops 2010-04-29 19:40:52
是的。但问题是有很多程序彼此链接,一旦颜色改变了一种形式,相同的颜色将被用于其他形式也 – user161004 2010-04-29 19:51:43