Hallo Leute.
Ich probiere gerade mein Label über die setText() Methode zu ändern. Nur bekomme ich jedesmal eine NPE.
Mein Controller:
Meine FXML:
[XML] <center>
<TabPane fx:id="tabPan">
<Tab text="Willkommen" closable="true" >
<VBox>
<TitledPane text="Allgemeines" expanded="true">
<GridPane>
<Label text="Benutzername:" GridPane.columnIndex="0" GridPane.rowIndex="0" />
<Label fx:id="username" GridPane.columnIndex="1" GridPane.rowIndex="0" />
<Label text="Termine gesamt:" GridPane.columnIndex="0" GridPane.rowIndex="1" />
<Label fx:id="dates" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="Aufgaben gesamt:" GridPane.columnIndex="0" GridPane.rowIndex="2" />
<Label fx:id="toDos" GridPane.columnIndex="1" GridPane.rowIndex="2" />
</GridPane>
</TitledPane>
<TitledPane text="Aktuell" expanded="true">
<GridPane fx:id="actualPane">
</GridPane>
</TitledPane>
</VBox>
</Tab>
</TabPane>
</center>[/XML]
Und die NPE:
Ich weis nicht was das Problem ist, also ich glaube mein Controller kennt das Label username aus der FXML gar nicht, weil ich kann auch nicht den Text des Labels über getText() erfragen. Habe extra nachgeguckt, das mein Controller auch als Controller der .fxml Datei eingetragen ist, habe auch mal probiert das Label im Controller code zu initialisieren, bringt alles nichts. Im Internet habe ich auch nichts gefunden, nur das man sicher stellen soll das das Label initialisiert ist. Aber in meinem LoginController habe ich auch eine Statusmeldung die aktualisiert werden soll und da kann ich Problemlos auf das Label zugreifen, deswegen denke ich hat es was mit meiner .fxml Datei zu tun und dem Controller für diese, nur was weis ich leider nicht....
Vielen Dank für jede Hilfe
-GhostfaceChilla-
Ich probiere gerade mein Label über die setText() Methode zu ändern. Nur bekomme ich jedesmal eine NPE.
Mein Controller:
Java:
public class HomenizerController implements Initializable{
//ArrayList zum abspeichern der Termine in Listen Form
private ArrayList<Date> dateList = new ArrayList();
//ArrayList zum ab speichern der Aufgaben in Listen Form
private ArrayList<ToDo> toDoList = new ArrayList();
private Properties prop = null;
@FXML private Label username;
private void setWelcomeTab(){
username.setText("A");
}
private void loadProperties(String path){
FileInputStream fis = null;
try {
prop = new Properties();
fis = new FileInputStream("src/homenizer/profiles/"+path+"/config.properties");
prop.load(fis);
} catch (FileNotFoundException ex) {
Logger.getLogger(HomenizerController.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(HomenizerController.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if(fis != null)
fis.close();
} catch (IOException ex) {
Logger.getLogger(HomenizerController.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void startHomenizer(Stage stage, String username) throws IOException{
Parent root = FXMLLoader.load(getClass().getResource("/homenizer/view/HomenizerView.fxml"));
Scene scene = new Scene(root,1100,650);
stage.setResizable(true);
stage.setTitle("Homenizer");
stage.setScene(scene);
stage.show();
loadProperties(username);
setWelcomeTab();
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
Meine FXML:
[XML] <center>
<TabPane fx:id="tabPan">
<Tab text="Willkommen" closable="true" >
<VBox>
<TitledPane text="Allgemeines" expanded="true">
<GridPane>
<Label text="Benutzername:" GridPane.columnIndex="0" GridPane.rowIndex="0" />
<Label fx:id="username" GridPane.columnIndex="1" GridPane.rowIndex="0" />
<Label text="Termine gesamt:" GridPane.columnIndex="0" GridPane.rowIndex="1" />
<Label fx:id="dates" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="Aufgaben gesamt:" GridPane.columnIndex="0" GridPane.rowIndex="2" />
<Label fx:id="toDos" GridPane.columnIndex="1" GridPane.rowIndex="2" />
</GridPane>
</TitledPane>
<TitledPane text="Aktuell" expanded="true">
<GridPane fx:id="actualPane">
</GridPane>
</TitledPane>
</VBox>
</Tab>
</TabPane>
</center>[/XML]
Und die NPE:
Code:
Caused by: java.lang.NullPointerException
at homenizer.controller.HomenizerController.setWelcomeTab(HomenizerController.java:44)
at homenizer.controller.HomenizerController.startHomenizer(HomenizerController.java:76)
at homenizer.controller.LoginController.onStartRequest(LoginController.java:107)
... 54 more
Exception in thread "JavaFX Application Thread" Deleting directory C:\Users\chris_000\Documents\NetBeansProjects\Homenizer\dist\run1609603179
Ich weis nicht was das Problem ist, also ich glaube mein Controller kennt das Label username aus der FXML gar nicht, weil ich kann auch nicht den Text des Labels über getText() erfragen. Habe extra nachgeguckt, das mein Controller auch als Controller der .fxml Datei eingetragen ist, habe auch mal probiert das Label im Controller code zu initialisieren, bringt alles nichts. Im Internet habe ich auch nichts gefunden, nur das man sicher stellen soll das das Label initialisiert ist. Aber in meinem LoginController habe ich auch eine Statusmeldung die aktualisiert werden soll und da kann ich Problemlos auf das Label zugreifen, deswegen denke ich hat es was mit meiner .fxml Datei zu tun und dem Controller für diese, nur was weis ich leider nicht....
Vielen Dank für jede Hilfe
-GhostfaceChilla-