Kein Label Array??



  • Guten morgen liebe programmierer, ich hoffe ihr könnt mir helfen.
    Folgendes Problem:
    Ich bin dabei ein 4Gewinnt spiel zu schreiben, und mache grad die Graphische oberfläche.

    spaltereihe[0][5].setBounds(8, 64, 43, 48);
        spaltereihe[0][5].setText("");
        spaltereihe[0][5].setBackground(Color.BLUE);
        spaltereihe[0][5].setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
        cp.add(spaltereihe[0][5]);
    

    Beim starten kommt dann eine Excpeption Meldung: "java.lang.NullPointerException".
    Liegt es an dem Array? denn ohne das Array funktionierts(is aber hunderte Zeilen länger).
    würd mich über eine schnelle Antwort freuen,
    farmer46



  • Nun, der Code reicht nicht aus, um den Fehler eindeutig identifizieren zu können. Aber ich kann ja mal auf etwas tippen... hast du den Array per new initialisiert? Wenn ja, hast du danach die einzelnen Elemente mit new initialisiert? Wird noch häufig vergessen^^

    MfG



  • Du musst vorher den einzelnen Array-Koponenten auch Werte, sprich Objekte zuweisen:

    JLabel[] x = new JLabel[5];  // Alle Komponenten werden mit null belegt
    
    for(int i = 0; i < x.length; i++) {  // Array mit Objekten füllen
      x[i] = new JLabel();
    }
    
    for(JLabel lb : x) {  // jetzt kannst du damit arbeiten:
      lb.setText("foo");
    }
    


  • Ich hab dass so initialiesiert:
    private Label[][] spaltereihe = new Label[7][6];

    muss ich jedes Label einzeln machen?
    farmer46



  • farmer46 schrieb:

    Ich hab dass so initialiesiert:
    private Label[][] spaltereihe = new Label[7][6];

    muss ich jedes Label einzeln machen?
    farmer46

    Ja. In Wirklichkeit ist es eben kein Array von Labels, sondern ein Array von Referenzen auf Labels 😉



  • Ah gut, das probier ich ma aus, wusste gar nich das das referenzen sind.
    vielen dank für eure hilfe!
    farmer46


Anmelden zum Antworten