gpt4 book ai didi

java - 如何使用字符串作为变量?

转载 作者:行者123 更新时间:2023-12-01 11:12:30 25 4
gpt4 key购买 nike

情况是这样的:我有一个程序需要使用语句动态分配颜色

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 类型。

(以下内容可能仍然正确,但显然我已将名称写入我的枚举中,因此不再需要):

(仅在某些情况下。我想使用 java 原始预定义颜色中的 8 种,然后我自己定义了另外 20 种左右,我必须弄清楚如何处理将它们放入;例如:

Color myDarkYellow   = new Color (160, 160,   0);

然后

if (fColorTxt == "DARK_YELLOW") { fColor = myDarkYellow; }
mb.setForeground(fColor);

这看起来正确吗?还是有更好的方法来处理这个问题?)

最佳答案

也许你可以使用 Enum 来避免 28 else if

关于java - 如何使用字符串作为变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32186128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com