2016-11-28 40 views
1

Ich versuche, über JavaFX zu lernen und stieß auf NullPointerException für Controller. Immer wenn ich die Instanz des Controllers verwende, zeige Eclipse die Exception. Ich habe mehrere ähnliche Fragen gelesen, aber nichts davon hat meinen Fall gelöst.NullPointerException bei der Verwendung von Controller in FXML

Hier ist der Code-Schnipsel, die die Ausnahme

public GuiController (Stage a) throws IOException { 
    this.priStage = a; 
    FXMLLoader fxLoader = new FXMLLoader(getClass().getClassLoader().getResource("View/OverviewWindow.fxml")); 
    overviewController = fxLoader.getController(); 
    overviewController.getRefreshButton().setText("Oh no"); **// When i remove this line everything works fine!** 
    Parent root = fxLoader.load(); 
    priStage.setScene(new Scene(root)); 
    priStage.show(); 
} 

Hier verursacht ist mein Controller-Klasse, im Grunde nichts:

public class OverviewWindow implements Initializable { 
    @FXML TextField searchTextField; 

    @FXML 
    private Button standardButton; 

    @FXML 
    private Button refreshButton; 

    @FXML 
    private RadioButton mitArchivRadioButton; 

    @FXML 
    private RadioButton nurArchivButton; 

    @Override 
    public void initialize(URL a, ResourceBundle b) { 

    } 
    public OverviewWindow() { 

    } 

} 

mein Stack-Trace

at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
at Controller.GuiController.<init>(GuiController.java:31) 
at Controller.Controller.init(Controller.java:33) 
at main.start(main.java:24) 

Kann mir jemand helfen ? Ich habe tagelang über dieses Problem gelesen und versucht, den Controller richtig einzustellen, konnte es aber nicht. Vielen Dank.

+0

Mögliche Duplikat [Was für eine Nullpointer ist, und wie kann ich es beheben?] (Http://stackoverflow.com/questions/ 218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –

+0

Ich habe ziemlich viele Ideen von NullPointerException, aber wusste nicht wirklich, warum das der Fall ist. Ich initialisierte das Controller-Objekt, legte es in FXMLLoader fest, und trotzdem geschieht dies. –

Antwort

0

zuerst müssen Sie laden fxml nach dem Schreiben dieser Code ..

overviewController = fxLoader.getController(); 
overviewController.getRefreshButton().setText("Oh no"); 
Verwandte Themen