Java 颜色检测
我有一个包含2222种颜色的XML文件,其中有两个属性:第一个名称和第二个rgb值(实际上是它的十六进制值)Java 颜色检测,java,xml,colors,hex,Java,Xml,Colors,Hex,我有一个包含2222种颜色的XML文件,其中有两个属性:第一个名称和第二个rgb值(实际上是它的十六进制值) 我试图显示用户单击鼠标的位置的颜色名称String hextstring(参数值)是用户单击颜色的十六进制值。此值将与rgbvalue(实际上它的十六进制值存储在XML文件中)进行比较。如果两者匹配,则显示存储在XML文件中的颜色名称,但如果语句不起作用,则显示我的比较 public static void xmlfilereader(String hexString) {
我试图显示用户单击鼠标的位置的颜色名称
String hextstring(参数值)
是用户单击颜色的十六进制值。此值将与rgbvalue
(实际上它的十六进制值存储在XML文件中)进行比较。如果两者匹配,则显示存储在XML文件中的颜色名称,但如果语句不起作用,则显示我的比较
public static void xmlfilereader(String hexString)
{
try{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
File file = new File("colore.xml");
if (file.exists()) {
Document doc = db.parse(file);
Element docEle = doc.getDocumentElement();
System.out.println("Root element of the document: "
+ docEle.getNodeName());
NodeList colorList = docEle.getElementsByTagName("color");
System.out.println("Total Color: " + colorList.getLength());
if (colorList != null && colorList.getLength() > 0) {
for (int i = 0; i < colorList.getLength(); i++) {
Node node = colorList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
NodeList mycolorList = doc.getElementsByTagName("color");
Element colorElement = (Element) mycolorList.item(i);
String colorName = colorElement.getAttribute("name");
String rgbvalue = colorElement.getAttribute("rgb");
if(hexString.equalsIgnoreCase(rgbvalue) )
{
System.out.println("color name: " + colorName + " Hex: " + rgbvalue);
}
else
{
System.out.println("comparision if not working");
}
}
此代码仅与xml文件的第一种颜色进行比较您是否尝试打印hextstring
和rgbvalue
的值以查看它们是否实际匹配?从XML中检索RGB值的方法可能在某些地方是错误的。也粘贴您的示例XML。“如果不起作用则进行比较”
“Egads!在文本应用程序上运行拼写检查器。可能会打印很多次。还有第二个词,如果
或是
?尊敬的安德鲁·汤普森!比较if表示比较的if语句。。。。这只是其他方面的信息。。
Root element of the document: ColorDefinition
Total Color: 2222
comparision if not working
comparision if not working
comparision if not working
......