samedi 2 mai 2015

Kann nicht auf GUI Elemente zugreifen, mit einer Methode im Controller klappts, mit der anderen nich

Hallo Community,

ich habe einen Fehler in meinem Quelltext doch ich komme der Ursache nicht auf den Grund.

Zur zeit entwickeln wir in Projektarbeit für die Uni ein Spiel. Zurzeit sind wir noch beim Erstellen des Menüs und der config.
Ich habe eine .fxml Datei erstellt und versuche mit dem Controller: "Controller.java" darauf zuzugreifen.

Die methode save_settings funktionert, ich kann die Daten aus den Feldern auslesen und mithilfe einer Methode der Klasse Settings.java speichern, jedoch in der Methode Controller.load_settings bekomme ich immer Nullpointer Exceptions, obwohl die Methode die selben Eigenschaften besitzt, in der selben Klasse steht und die scene-controls eigentlich auch auslesen können sollte.

Ich hab schon Teile auskommentiert um den Fehler besser eingrenzen zu können, jedoch ein simples setText(); funktioniert nichtmal.

(Die Klasse Settings funktioniert einwandfrei, da kann der Fehler definitiv nicht liegen)

Hier ist der Ausschnitt meines Quelltexts:

public javafx.scene.control.Button btn_exit;
public javafx.scene.control.Button btn_settings_saveexit;
public javafx.scene.control.Button btn_settings_apply;
public javafx.scene.control.Slider sl_settings_audiovolume;
public javafx.scene.control.TextField tf_settings_name;
public javafx.scene.control.ChoiceBox cb_settings_resolution;
public javafx.scene.control.ChoiceBox cb_settings_language;

public void settings(Event event) throws Exception{
Parent info = FXMLLoader.load(getClass().getResource("settings.fxml"));
Stage settings_stage = new Stage();
settings_stage.setTitle("Settings");
settings_stage.setScene(new Scene(info, 650, 400));
settings_stage.show();
load_settings();
}

public void
save_settings(){ //Diese Methode funktioniert

Settings cfg = new Settings();
//cfg.load();
cfg.name = tf_settings_name.getText();
cfg.resolution = cb_settings_resolution.getValue().toString();
cfg.getresolutionvalues(cfg.resolution);
cfg.audiovolume = sl_settings_audiovolume.getValue();
sl_settings_audiovolume.setValue(0.5);
cfg.language = cb_settings_language.getValue().toString();
cfg.save();
System.out.println("Methode save_settings durch");
}

public void load_settings(){ //Bisher kein Zugriff auf die Java scene controls
Settings cfg = new Settings();
cfg.load();
tf_settings_name.setText(cfg.getString("name")); //Auch ein simples .setText("Test"); geht nicht
// Hier bekomme ich die Nullpointer Exception

//tf_settings_name.setText("Test");
//cb_settings_resolution.setValue(cfg.getString(cfg.resolution));
//sl_settings_audiovolume.setValue(cfg.getDouble("audiovolume"));
//sl_settings_audiovolume.setValue(0.5);
// cb_settings_language.setValue(cfg.getString(cfg.language));
System.out.println("Methode load_settings durch");
}


Wäre toll wenn mir jemand in absehbarer Zeit helfen könnte und meinen Fehler findet.

Viele Grüße,
kevinistes


Kann nicht auf GUI Elemente zugreifen, mit einer Methode im Controller klappts, mit der anderen nich

0 commentaires:

Enregistrer un commentaire