情况如下:我有一个程序需要使用语句
动态分配颜色mb.setForeground(Color.????);
哪里????通常是红色或绿色或你有什么。但是,由于我直到运行时才知道要进入该值的是什么,我需要使用字符串传递该信息:
String fColorTxt = "????";
因此,fColorTxt所赋予的值是我想在Color之后结束的值。
我现在已经完成了以下工作,但我不知道它是否会起作用......
public enum ColorChoice {
BLACK ( 0, 0, 0),
BLUE ( 0, 0, 255), LIGHT_BLUE ( 0, 128, 255), DARK_BLUE ( 0, 0, 128),
BROWN (160, 96, 0), LIGHT_BROWN (208, 144, 0), DARK_BROWN ( 96, 32, 0),
CYAN ( 0, 255, 255), LIGHT_CYAN (176, 255, 255), DARK_CYAN ( 0, 139, 139),
GRAY (128, 128, 128), LIGHT_GRAY (211, 211, 211), DARK_GRAY ( 64, 64, 64),
GREY (128, 128, 128), LIGHT_GREY (211, 211, 211), DARK_GREY ( 64, 64, 64),
GREEN ( 0, 255, 0), LIGHT_GREEN (128, 255, 128), DARK_GREEN ( 0, 128, 0),
MAGENTA (255, 0, 255), LIGHT_MAGENTA (255, 144, 255), DARK_MAGENTA (144, 0, 144),
MINT ( 96, 221, 96), LIGHT_MINT (208, 238, 208), DARK_MINT ( 16, 187, 16),
ORANGE (255, 128, 0), LIGHT_ORANGE (255, 176, 48), DARK_ORANGE (192, 64, 0),
PINK (255, 192, 203), LIGHT_PINK (255, 128, 255), DARK_PINK (231, 84, 128),
YELLOW (255, 255, 0), LIGHT_YELLOW (255, 255, 128), DARK_YELLOW (160, 160, 0),
WHITE (255, 255, 255);
private int iRed;
private int iGreen;
private int iBlue;
ColorChoice(int iRed, int iGreen, int iBlue) {
this.iRed = iRed;
this.iGreen = iGreen;
this.iBlue = iBlue;
}
}
我想我需要弄清楚如何做一些事情。我最终希望能够像这样调用一个函数:
sColor = myFunction(fColorTxt);
mb.setForeground(sColor);
sColor = myFunction(bColorTxt);
mb.setBackground(sColor);
其中bColorTxt和fColorTxt是在运行时使用变量动态设置的,而sColor是Color类型。
(下面可能仍然如此,但显然我已将这些名字写入我的枚举,因此不再需要):
(仅在某些情况下。我想使用8个java的原始预定义颜色,然后我定义了另外20个左右的我自己,我将不得不弄清楚如何处理它们;例如:
Color myDarkYellow = new Color (160, 160, 0);
然后
if (fColorTxt == "DARK_YELLOW") { fColor = myDarkYellow; }
mb.setForeground(fColor);
这看起来是正确还是有更好的方法来处理它?)
答案 0 :(得分:1)
也许你可以使用Enum来避免其他28个