JavaFX-可以將應(yīng)用程序類作為控制器類目前,我正在自學(xué)JavaFX,我使用了一個(gè)簡單的示例程序,它硬編碼視圖,并將其轉(zhuǎn)化為使用FXML的視圖(主要是為了讓我可以使用SceneBuilder構(gòu)建UI)。我使用的不是單獨(dú)的控制器類,而是應(yīng)用程序類(因此有一個(gè)Java文件和一個(gè)FXML文件)。我沒有用initialize()方法,因?yàn)樗且粋€(gè)線性流(顯示UI、填充字段、等待輸入)。視圖彈出,但是應(yīng)用程序出錯,因?yàn)闆]有一個(gè)控件被映射到適當(dāng)?shù)淖兞?所以)@FXML TableView<...> table, table是null).但是,我輸入了一個(gè)initialize()方法時(shí)注入控件。initialize()時(shí),然后返回為空。initialize()出口。所以問題是,JavaFX是否將應(yīng)用程序類的新實(shí)例化為單獨(dú)的控制器類?這將解釋為什么變量超出了范圍?;蛘呤瞧渌臇|西(例如,只有在從JavaFX操作中被調(diào)用時(shí)才注入控件)?
3 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("example.fxml"));fxmlLoader.setController(this);Parent root = (Parent)fxmlLoader.load();

HUH函數(shù)
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
“FXMLLoader的默認(rèn)行為是創(chuàng)建控制器類的一個(gè)新實(shí)例,并將該實(shí)例用作控制器?!边@就是我想要發(fā)生的事。我正在嘗試快速而骯臟的轉(zhuǎn)換,現(xiàn)在顯然沒有遵循最佳實(shí)踐
添加回答
舉報(bào)
0/150
提交
取消