我有一个方法setColor
,返回 float[]。它总是返回 size=3 的浮点数组。当我这样使用它时:
float[] color=setColor(0);
content.setColor(Color.getHSBColor(color[0], color[1], color[2]));
有一个NullPointerException
。
当我调试我的程序 color[0], color[1], color[2] 被定义,但它说有一个 NullPointerException。
我怎样才能解决这个问题?
这是 setColor 的代码
private float[] setColor (int colorID){
float[]hsbValues=new float[3];
if(colorID == 1){
hsbValues = Color.RGBtoHSB(0,255,255,hsbValues);
}
else if(colorID == 2){
hsbValues = Color.RGBtoHSB(255,0,255,hsbValues);
}
else if(colorID == 3){
hsbValues = Color.RGBtoHSB(0,255,0,hsbValues);
}
else if(colorID == 4){
hsbValues = Color.RGBtoHSB(255,255,0,hsbValues);
}
else if(colorID == 5){
hsbValues = Color.RGBtoHSB(255,0,0,hsbValues);
}
else if(colorID == 6){
hsbValues = Color.RGBtoHSB(255,255,255,hsbValues);
}
else{
hsbValues = Color.RGBtoHSB(0, 0, 0,hsbValues);
}
return hsbValues;
}
这是类的构造函数。
DrawOutput (MinDistances requiredMinDistances, MainMatrix matrix){
super();
getRequiredMedoidsArray(requiredMinDistances);
paint(getGraphics(), requiredMinDistances, matrix);
}
getGraphics 为空,有什么建议吗?