我有一个字符串,它存储的颜色的名称。通过这个变量的帮助,我需要更改面板背景。如何做呢???更改面板颜色
更改面板颜色
回答
创建包含颜色的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. 更改面板的颜色以匹配用户主题颜色
- 4. 如何更改曲面调色板颜色?
- 5. 更改颜色
- 6. 更改颜色
- 7. 更新颜色选择器面板中的新颜色
- 8. 更改PhpStorm中警告面板的颜色
- 9. 如何更改Java面板上的背景颜色?
- 10. 在预览面板中更改边缘颜色
- 11. 更改所有tabbedpane面板java swing的颜色按钮操作
- 12. 使用sass更改引导面板颜色
- 13. 更改手风琴面板选项卡的颜色
- 14. xfce4/gtk-3.0 - 更改面板DateTime小部件的文本颜色?
- 15. 更改引导面板的背景颜色
- 16. 如何在Delphi中动态更改TChart的面板颜色?
- 17. 如何更改引导程序面板页脚颜色
- 18. 从面板更改窗体背景颜色
- 19. CSS如何更改if块中特定主面板的颜色
- 20. 更改UltraCalenderCombo的背面颜色
- 21. 更改背面按钮的颜色
- 22. 更改文本颜色GGPLOT2单方面
- 23. 更改页面高亮显示颜色
- 24. 获取面板的颜色
- 25. 获取面板颜色
- 26. 更改Texbox颜色
- 27. 更改SVG颜色
- 28. 更改UIBarButtonItem颜色
- 29. 更改vim'gutter'颜色
- 30. 更改UIBarButtonItem颜色
您使用的颜色名称数是否有限? – Pops 2010-04-29 19:40:52
是的。但问题是有很多程序彼此链接,一旦颜色改变了一种形式,相同的颜色将被用于其他形式也 – user161004 2010-04-29 19:51:43