我基本上是JavaFX的新手,我开始了其中的第一个项目。首先,我想确保您已阅读以下链接的文章:
JavaFx TabPane : One controller per Tab JavaFX Pane inside of a Tab
我知道如何将Pane直接放入选项卡,但是我想要的是让TabPane中Tabs中每个内容的每个Controller。
Main.fxml
<center>
<TabPane fx:id="mainTabPane">
<tabs>
<Tab fx:id="tabChar" closable="false" text="Character" onSelectionChanged="#showCharacterTab"/>
<Tab fx:id="tabSkills" closable="false" text="Skills" />
<Tab fx:id="tabMagic" closable="false" text="Magic" />
<Tab fx:id="tabStory" closable="false" text="Story" />
<Tab fx:id="tabPortrait" closable="false" text="Portrait" />
<Tab fx:id="tabDatabase" closable="false" text="Char-Base" />
</tabs>
</TabPane>
</center>
我不得不提到的是我的TabPane位于BorderPane的中心,这是一个主窗口。
我尝试为该选项卡构建新的Scene并将其与showCharacterTab方法相关联,但此刻我最终获得了这一点:
@FXML
private Tab tabChar;
@FXML
public void showCharacterTab() throws IOException{
if (tabChar.isSelected()) {
AnchorPane characterPane = FXMLLoader.load(getClass().getResource("character.fxml"));
tabChar.setContent(characterPane.getParent());
}
}
现在我完全不知道该怎么做。我是一个新手,我可能开始时内容太多。我不知道是否必须将其放入initialize()方法中以使其在启动时可见,并且我不知道我是否正确使用了onSelectionChanged方法。
所以总结一下:我想使每个内容都在与新FXML文件和新Controller关联的不同选项卡中。我试图避免使用此处描述的嵌套控制器选项:Nested Controllers