I am trying to get the separate RGB components from each element in a 2D color array,but it keeps throwing a NullPointerException and I am not sure why.
CODE:
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*/
}
}
I also tried to first add the colors to a list and and then convert it to a one-dimensional array. But I still get the same error.
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);
}
It prints the following:
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)