JavaFx选项卡窗格:每个选项卡一个控制器
我是javafx新手,我正在尝试在选项卡窗格中为每个选项卡设置一个控制器。 我找到了这个答案:这让我这么做: Main.fxmlJavaFx选项卡窗格:每个选项卡一个控制器,javafx,tabs,controller,Javafx,Tabs,Controller,我是javafx新手,我正在尝试在选项卡窗格中为每个选项卡设置一个控制器。 我找到了这个答案:这让我这么做: Main.fxml <TabPane fx:controller="sample.Controller" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy
<TabPane fx:controller="sample.Controller" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/null">
<tabs>
<Tab text="Configuration">
<content>
<fx:include fx:id="mConfigTabPage" source="configTab.fxml"/>
</content>
</Tab>
<Tab text="TODO">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</TabPane>
<Pane fx:controller="sample.ConfigController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/null" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label layoutX="23.0" layoutY="22.0" text="API Key :" />
<TextField layoutX="95.0" layoutY="18.0" fx:id="mAPIKey" />
</children>
</Pane>
ConfigController.java
public class Controller {
private Stage mStage;
@FXML
private ConfigController mConfigTabPage;
public void Controller(){}
public void setStage(Stage stage)
{
mStage = stage;
}
@FXML
public void initialize() {
System.out.println("CONTROLLER");
}
}
public class ConfigController {
public void ConfigController(){}
@FXML
public void initialize() {
System.out.println("CONFIG CONTROLLER");
}
}
如果我删除,我的程序将启动
@FXML
private ConfigController mConfigTabPage;
在主控制器中
但当我添加它时,我有以下例外:
java.lang.IllegalArgumentException:无法设置
sample.ConfigController字段sample.Controller.mConfigTabPage to
javafx.scene.layout.AnchorPane
所以我猜javafx试图将我的控制器投射到一个锚机上,这导致了问题
我应该怎么做才能在我的主控制器中引用每个窗格的控制器?如果您想使用fx:id=“something”
将后缀controller
附加到Java成员字段中。因此,您必须使用:
@FXML
private ConfigController mConfigTabPageController;
请参阅。如果您想使用fx:id=“something”
将后缀controller
附加到Java成员字段中。因此,您必须使用:
@FXML
private ConfigController mConfigTabPageController;
请参阅。的可能副本