1
我有一些通用FXML與許多組件,但讓我們說它是一個textArea爲簡單起見。Java重用通用FXML
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TextArea?>
<TextArea fx:id="test" prefHeight="200.0" prefWidth="200.0" promptText="test data" xmlns="http://javafx.com/javafx/8.0.101" xmlns:fx="http://javafx.com/fxml/1" />
而在此textArea上,您可以看到它有一個「test」標識。
所以我的問題是你可以重複使用這個FXML在多於一個控制器?
我最初的想法是通過一個通用控制器,如下圖所示:
public abstract class GenericController {
Program program = Program.getInstance();
@FXML TextArea test;
@FXML
abstract void initialize();
abstract void setData();
}
,並指出了FXML到GenericController。 然後延伸它在一個更具體的控制器。但我只是得到一個LoadExceptionError錯誤在fx:controller =「sample.Controllers.GenericController」。
有更先進的東西,你可以使用控制器的工廠做的,(其中,例如,你可以用一個依賴注入框架結合起來),如果你需要,但它聽起來像這將足以滿足你的需求。 –
剛剛試過這個,我仍然得到'javafx.fxml.LoadException:沒有指定控制器.' – audittxl
@audittxl然後你做錯了什麼。你正在調用無參數的load()方法,不是靜態的'load(URL)'方法嗎? –