簡體   English   中英

JavaFX:fx:id校對

[英]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>

然后,這允許EclipseIntelliJ (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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM