Witam!
Piszę gierkę Memory w JavaFX. Mam klasę GeneratorKafli, w której generowane są obiekty typu Kafel i wrzucane w losowej kolejności do odpowiedniej wielkości tablicy dwuwymiarowej a ta przekazywana jest do Kontrolera. W kontrolerze metoda odpowiadająca za wyświetlanie odpowiedniej wielkości planszy (np 4x4) pobiera z komórki [i][j] przekazanej powyżej tablicy jedno z pól obiektu - ścieżkę obrazka i wrzuca dany obrazek w ImageView a ten dalej w gridPane. I na tym ostatnim a dokładnie w linijce gridPane.add(iv[i][j],i,j); dostaję NullPointerException. Z debuggera wiem, że ten gridPane jest tutaj null'em, ale nie rozumiem dlaczego. Proszę o pomoc
Controller.java
public class SampleController {
private Stage stage;
public void setStage(Stage stage){
this.stage=stage;
}
@FXML
private AnchorPane ap;
@FXML
public TilePane tilePane;
@FXML
public GridPane gridPane;
GeneratorKafli generator = new GeneratorKafli();
Stage nowa_gra_single = new Stage();
Stage gra_single = new Stage();
public void Gra4x4() throws IOException{
ImageView iv00 = new ImageView();
ImageView iv01 = new ImageView();
ImageView iv02 = new ImageView();
ImageView iv03 = new ImageView();
ImageView iv04 = new ImageView();
ImageView iv05 = new ImageView();
ImageView iv06 = new ImageView();
ImageView iv07 = new ImageView();
ImageView iv08 = new ImageView();
ImageView iv09 = new ImageView();
ImageView iv10 = new ImageView();
ImageView iv11 = new ImageView();
ImageView iv12 = new ImageView();
ImageView iv13 = new ImageView();
ImageView iv14 = new ImageView();
ImageView iv15 = new ImageView();
ImageView [][] iv = {
{ iv00, iv01, iv02, iv03},
{ iv04, iv05, iv06, iv07},
{ iv08, iv09, iv10, iv11},
{ iv12, iv13, iv14, iv15}
};
generator.GenerujKafle4x4();
Kafel kafle[][] = new Kafel[4][4];
kafle = generator.PokazKafle();
//System.out.print("Testowo: " + kafle[0][0].getNazwa() + " " +kafle[1][0].getNazwa() + " " + kafle[3][0].getNazwa());
System.out.println();
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
Image image = new Image(kafle[i][j].getImage());
System.out.print(i+","+j+" ...." + kafle[i][j].getImage() +"\n" );
iv[i][j].setImage(image);
gridPane.add(iv[i][j],i,j);
}
System.out.println();
}
}
@FXML
private void PlaySingle(){
Parent root;
try {
root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
gra_single.setTitle("MEMORY karciane");
gra_single.setScene(new Scene(root, 1500, 800));
nowa_gra_single.close();
gra_single.show();
Gra4x4();
}
catch (IOException e) {
e.printStackTrace();
}
}
}