swing在Java中使用不同的RGB值获得相同的颜色
我正在使用jxl读取Excel文件。我需要根据单元格的字体颜色做出决定。我得到的单元格的字体颜色是黑色,但RGB值是(1,0,0)
当我把它和颜色比较时。黑色它无法通过==比较,因为颜色的RGB值。黑色是(0,0,0)
Colour color = nameCell.getCellFormat().getFont().getColour();
if(color == Colour.BLACK) //fails this test
options = "0";
else
options = "1";
在上面的代码中color.getDescription()
给出了黑色的描述
我怎样才能发现“黑色”在Colour.BLACK
和nameCell.getCellFormat().getFont().getColour()
两个对象中都是常见的呢
# 1 楼答案
您需要一种在Java中比较颜色的方法
你可以在这里找到相关信息:how could i compare colors in java?
不管怎样:
你需要为平等而不是身份进行比较,所以:
color == Color.BLACK
必须翻译成Color.BLACK.equals(color)
由于需要进行近似比较,因此需要一种方法来计算颜色之间的距离,并迫使其低于(实验确定的)值
下面是一个例子:
# 2 楼答案
rgb(1,0,0)是一种非常深的灰色
试试看