1

我有一个方法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 为空,有什么建议吗?

4

3 回答 3

2

如果这条线可以抛出 NPE

  1. color一片空白
  2. content一片空白

如果color不为空,请检查您的content.

于 2013-04-27T13:59:30.797 回答
2

content变量null是。

于 2013-04-27T14:00:00.527 回答
0

你的 NPE 在这一行:

content.setColor(Color.getHSBColor(color[0], color[1], color[2]));

因为contentnull

float数组总是在这里创建float[] hsbValues = new float[3],因为color[0], color[1],color[2]float, 它们不能是null.

于 2013-04-27T14:05:19.193 回答