NullPointerException bei Beschreiben eines Labels aus einem Array

Jose05

Aktives Mitglied
Hallo,
ich habe eine JavaFX-Anwendung programmiert. In dieser Anwendung habe ich 16 Labels erstellt, die ich dann in einen Array zusammengefasst habe. Wenn ich nun versuche ein Label aus dem Array zu beschreiben, bekomme ich eine Fehlermeldung.

[CODE lang="java" title="Dies ist mein Code:" highlight="80"]public class RasterController implements Initializable {
@FXML
public static Label lbl1;
@FXML
public static Label lbl2;
@FXML
public static Label lbl3;
@FXML
public static Label lbl4;
@FXML
public static Label lbl5;
@FXML
public static Label lbl6;
@FXML
public static Label lbl7;
@FXML
public static Label lbl8;
@FXML
public static Label lbl9;
@FXML
public static Label lbl10;
@FXML
public static Label lbl11;
@FXML
public static Label lbl12;
@FXML
public static Label lbl13;
@FXML
public static Label lbl14;
@FXML
public static Label lbl15;
@FXML
public static Label lbl16;

GridPane gp;

static Label[][] lbl = new Label[4][4];

/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb)
{
Random rd = new Random();

for (int i = 0; i < 2; i++)
{
int x = rd.nextInt(4);
int y = rd.nextInt(4);
int wertErmittelung = rd.nextInt(10);
int wert;

lbl[0][0] = lbl1;
lbl[0][1] = lbl2;
lbl[0][2] = lbl3;
lbl[0][3] = lbl4;

lbl[1][0] = lbl5;
lbl[1][1] = lbl6;
lbl[1][2] = lbl7;
lbl[1][3] = lbl8;

lbl[2][0] = lbl9;
lbl[2][1] = lbl10;
lbl[2][2] = lbl11;
lbl[2][3] = lbl12;

lbl[3][0] = lbl13;
lbl[3][1] = lbl14;
lbl[3][2] = lbl15;
lbl[3][3] = lbl16;

if (wertErmittelung == 0) {
wert = 4;
} else {
wert = 2;
}

lbl[0][0].setText(String.valueOf(wert));
}

}
}
[/CODE]

Könnte mir jemand helfen. Danke schonmal im Vorraus!
 
Da hast du Recht. Ich habe das "private" zu "public static" geändert, damit ich auf die Labels aus einer anderen Klasse zugreifen kann. Ich verstehe nicht was das an der Sache ändert. Ich bin Programmieranfänger, deshalb würde ich mich auch über konkrete Vorschläge für Änderungen freuen.
 
Das static gehört da auf jeden Fall nicht hin. Stell dir einfach jemanden vor, der Dir immer auf die Finger haut, wenn du etwas static machst.

Auf Wunsch gibt es hier genug Freiwillige - nur aufpassen: @mrBrown haut nicht auf die Finger, der tritt dir in den A..... Und @mihe7 nimmt ein langes Lineal um auf die Finger zu hauen .... (ich selbst bin da human, aber beim auf die Finger hauen neige ich zu wüsten Beschimpfungen 🙂 )

Falls das noch nicht das Problem behoben haben sollte: gib mal Details, also fxml Datei und wie du es lädst und so.

Ansonsten ist das mehr wie dubios außerhalb der View hat es niemanden zu interessieren, was für Controls du hast. Das in den Controller zu packen ist schon schlimm genug! Da wäre mein Tipp: befasse Dich mehr mit dem MVC Pattern oder greif zum MVVM Pattern (mvvmFX Library). Das erspart Dir unnötige Probleme.

PS: Sorry: hab mal wieder Wein getrunken, zusammen mit Clown gefrühstückt kommen so bildliche Vergleiche bei raus ... 🙂
 
So lange ich damit nicht haue, bin ich fein raus ... aber du solltest meine Lineale nicht nutzen - es sei denn, du willst mehr Kontakt zu Staatsanwälten, Richtern und so 😉
 
Jetzt muss ich aufpassen, dass ich nichts falsches schreibe. Sagen wir es so: dem Entwickler muss klar sein, dass static das Tor zu seiner persönlichen Hölle öffnet 😎
 
Naja .... ein TE mag es vielleicht, von einer Horde Verrückter gejagt zu werden (die Wissen, wo er wohnt).

Das war jetzt die Ableitung einer Clean Code Aussage. Ich kann die jetzt auf dem Handy nicht Rausschmiss, aber sinngemäß war es etwas wie: Schreibe Code immer so, als würde ein Axt schwingenden Verrückter der weiss wo du wohnst deine Code lesen müsste.

(Ich frage mich bis heute, von welchem meiner Bekannten diese Aussage stammt 😉 )
 
Ach du je .. mein Handy schreibt, was es will ... 'ich kann es jetzt nicht raussuchen' ... aber Rausschmiss ist auch nicht schlecht ... aber halt Resultat eines viel zu kleinen Smartphones mit viel zu kleinen virtuellen Tasten und meine Frau will mich schon viele Monate zum Optiker schicken damit ich eine neue Brille bekomme ...

Aber egal - das passt auch gut zu dem Bild des Besoffenen, der nur sinnloses Zeug schreibt 🙂
 

Neue Themen


Zurück
Oben