[英]JavaFX : fx:id proofing
在控制器和FXML文件之間手動輸入fx:id
以及后期綁定是錯誤的潛在來源,這使代碼健壯性微弱(我個人觀點)。 另一方面,它提供了靈活性。
有沒有一種方法可以在運行時顯示綁定之前證明綁定和識別錯誤,或者這是“設計使然”的工作流程,您必須這樣做並且在編碼時要小心一點?
編輯:
我正在使用帶有e(fx)clipse和Gluon Scene Builder的Eclipse
據我所知,沒有像javac
這樣會抱怨的真正“證明”。 JavaFx對此不太動態。 最好的辦法是像這樣將控制器添加到FXML文件中
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<ScrollPane xmlns="http://javafx.com/javafx/8"
xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.myapp.MyController">
<content>
...
</content>
</ScrollPane>
然后,這允許Eclipse
或IntelliJ
(thx @silifly)向您顯示有關尚未綁定到控制器的元素的警告。 但是這不會告訴您由FXMLLoader
執行的FXMLLoader
是否成功。 然后,您可以在初始化階段檢查元素是否已正確注入。
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
public class MyController implements Initializable {
@FXML
private Button btnLogin;
@Override
public void initialize(URL location, ResourceBundle resources) {
assert btnLogin != null : "fx:id=\"btnLogin\" was not injected: check your FXML file 'MyView.fxml'.";
}
}
這些是我所知道的兩個設施,並且經常使用它們來檢查所有設置是否正確。
編輯:
我只是看到您不再需要實現接口,您只需編寫即可
@FXML
public void initialize() {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.