/ / Como substituir o método de um controle, quando inicializado pelo FXMLLoader? - java, javafx, substituição, injeção de código, fxmlloader

Como sobrescrever o método de um controle, quando inicializado pelo FXMLLoader? - java, javafx, override, injeção de código, fxmlloader

Temos várias visualizações JavaFX criadas com a ajuda do scenebuilder. Seus componentes são injetados nas classes de controladores através do FXMLLoader, como por exemplo um TreeTableView. Agora eu gostaria de substituir um método específico de TreeTableView, mas como é inicializado por FXMLLoader, Não sei como abordar isso.

Existe alguma maneira de substituir um método de TreeTableView injetado pelo FXMLLoader sem criar e importar um novo controle para o scenebuilder?

Respostas:

1 para resposta № 1

Para substituir um método no SceneBuilder, você precisa subclassificar o controle de destino em Java ou em alguma outra linguagem orientada a objetos e importar sua subclasse para o SceneBuilder.

FXML (no qual SceneBuilder se baseia), é apenas um sistema declarativo, não possui construções como subclassificação.

Muitos controles JavaFX possuem manipuladores de eventos configuráveis ​​(como setOnMouseClicked) e também são CSS personalizáveis, amboscoisas podem ser manipuladas no SceneBuilder e no FXML. Portanto, é possível personalizar bastante sem criar um novo controle ou subclasse, mas às vezes você pode criar controles personalizados para obter a flexibilidade desejada.