【发布时间】:2014-03-03 11:17:07
【问题描述】:
我的 javaFx 应用程序有问题。每次调用 Label 的 .setText() 方法时,都会收到 NullPointerException。这是我的代码: 这是我的控制器的片段:
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
}
这是我的 .fxml:
<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>
每次我想设置用户名的文本时,我都会得到这个 NULLPointerException:
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
线程“JavaFX 应用程序线程”中的异常删除目录 C:\Users\chris_000\Documents\NetBeansProjects\Homenizer\dist\run1609603179
那么,有人知道我遇到的问题吗?我找不到解决方案 :( 感谢您的每一个帮助
-GhostfaceChilla-
【问题讨论】:
标签: controller nullpointerexception javafx label fxml