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