Java 从字符串输入获取颜色,getField

Java 从字符串输入获取颜色,getField,java,Java,问题:我希望用户输入一种颜色(红色、蓝色),并将其转换为与颜色一起使用 我一直在看这个 ,, 我知道最好使用JColorChooser或类似的东西,尽管我没有那种豪华的。这是公认的答案 String text = "red"; Color color; Field field = Class.forName("java.awt.Color").getField(text.toLowerCase()); // toLowerCase because the color fields are RED

问题:我希望用户输入一种颜色(红色、蓝色),并将其转换为与颜色一起使用

我一直在看这个

,, 我知道最好使用JColorChooser或类似的东西,尽管我没有那种豪华的。这是公认的答案

String text = "red";
Color color;
Field field = Class.forName("java.awt.Color").getField(text.toLowerCase()); // toLowerCase because the color fields are RED or red, not Red
color = (Color)field.get(null);
从这个答案中,我看到它实际上只是将“.RED”浓缩到java.awt.Color上

虽然我似乎无法让它工作。他们的方法更好吗

我这样做的原因是在一个简单的程序中,它会要求用户输入颜色(“红色、蓝色、黄色等”)

然后,我希望能够将此颜色保存到文本文件中。打开文本文件并加载它,虽然我已经准备好了这个部分,但我还没有跨过从用户那里获取颜色的障碍。对不起,我还在学习java,所以我为任何明显的错误道歉


谢谢。

如果我必须将颜色存储在文本文件中,我会使用
int getRGB()
方法,将数字转换为十六进制,并将整数存储为字符串。然后将其解析回int,然后再解析回颜色,这将非常简单

e、 g

public static void writeOutMethod1(文件文件,列表颜色列表)引发FileNotFoundException{
PrintWriter pw=新的PrintWriter(文件);
用于(颜色:颜色列表){
printf(“%08x”,color.getRGB());
}
关闭();
}

如果我必须使用人类可以理解的字符串,我会创建自己的映射来将字符串与颜色关联。

因此用户无法键入“红色”,然后以某种方式将“红色”包含在java.awt.color上?然后用它来创造颜色?感谢you@jackdh:您已发布的代码将为您执行此操作。它有什么问题。啊,我错过了所有的导入,除了netbeans之外,我还扔了一些东西,只是好心地帮了我一下!非常感谢。
public static void writeOutMethod1(File file, List<Color> colorList) throws FileNotFoundException {
  PrintWriter pw = new PrintWriter(file);
  for (Color color : colorList) {
     pw.printf("%08x ", color.getRGB());
  }
  pw.close();
}