我试图从2D颜色数组中的每个元素获取单独的RGB组件,但它不断抛出NullPointerException并且我不确定原因。
代码:
Color[][] grid = new Color[MaxColors][MaxColors];
int R1 = 0;
for(int x = 0; x < N; x++){
for(int y = 0; y < N; y++){
R1 = grid[x][y].getRed();
/* do something with R1*/
}
}
我还尝试首先将颜色添加到列表中,然后将其转换为一维数组。但我仍然得到同样的错误。
List<Color> colorList = new ArrayList<Color>();
for(int x = 0; x < N; x++){
for(int y = 0; y < N; y++){
colorList.add(grid[x][y]);
}
}
Color[] SortColors = colorList.toArray(new Color[colorList.size()]);
for(int x = 0; x < SortColors.length; x++){
R1 = SortColors[x].getRed();
System.out.print(" " + SortColors[x]);
System.out.print(" " + R1);
}
它打印以下内容:
java.awt.Color[r=98,g=85,b=217] 98 java.awt.Color[r=254,g=110,b=177] 254Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at DrawGrid.ColourSorting.sortColours(ColourSorting.java:43)