我们在场景构建器的帮助下创建了几个 JavaFX 视图。它们的组件通过 注入到控制器类中FXMLLoader,例如TreeTableView. 现在我想覆盖 的特定方法TreeTableView,但由于它是由 初始化的FXMLLoader,我不知道如何处理这个问题。
有什么方法可以覆盖TreeTableViewFXMLLoader 注入的方法,而无需创建新控件并将其导入到 scenebuilder 中?
我们在场景构建器的帮助下创建了几个 JavaFX 视图。它们的组件通过 注入到控制器类中FXMLLoader,例如TreeTableView. 现在我想覆盖 的特定方法TreeTableView,但由于它是由 初始化的FXMLLoader,我不知道如何处理这个问题。
有什么方法可以覆盖TreeTableViewFXMLLoader 注入的方法,而无需创建新控件并将其导入到 scenebuilder 中?
要覆盖 SceneBuilder 中的方法,您需要使用 Java 或其他面向对象的语言对目标控件进行子类化,并将子类导入 SceneBuilder。
FXML(SceneBuilder 所基于的)只是一个声明性系统,它没有像子类化这样的结构。
许多 JavaFX 控件具有可设置的事件处理程序(例如setOnMouseClicked)并且也是可自定义的 CSS,这两者都可以在 SceneBuilder 和 FXML 中进行操作。因此,您可以在不创建新控件或子类的情况下进行大量自定义,但有时您可能希望创建自定义控件以获得所需的灵活性。