@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("AddressApp");
initRootLayout();
showTabOverview();
}
/**
* Initializes the root layout.
*/
public void initRootLayout() {
try {
// Load root layout from fxml file.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("rootLayout.fxml"));
rootLayout = (BorderPane) loader.load();
// Show the scene containing the root layout.
Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* Shows the Tab overview inside the root layout.
*/
public void showTabOverview() {
try {
// Load person overview.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("tabLayout.fxml"));
TabPane TabOverview = (TabPane) loader.load();
// Set person overview into the center of root layout.
rootLayout.setCenter(TabOverview);
} catch (IOException e) {
e.printStackTrace();
}
}
它確實與我的tabpane的FXML一起工作。爲什麼當我使用scenebuilder創建一個選項卡時,它說不是一個節點?
<TabPane xmlns:fx="http://www.w3.org/1999/XSL/Transform">
<tabs>
<Tab text="Untitled Tab 1">
</Tab>
<Tab text="Untitled Tab 2">
</Tab>
</tabs>
</TabPane>
但我想每個標籤FXML添加用這種方法我在this link
<Tab text="Untitled Tab 1">
<content>
<fx:include fx:id="fooTabPage" source="fooTabPage.fxml"/>
</content>
</Tab>
發現當我添加了包括與選項卡的新源它給了我IllegalArgumentException: Unable to coerce [email protected] to class javafx.scene.Node.
如何讓這些選項卡實際上成爲節點?有沒有具體的方法來創建它們?
Kiper嗨,請在您的問題文本適當的資本,你可能獲得更多的upvotes和答案。我已經解決了這個問題。最好的祝福。 – Lii
謝謝你,對不起! – Kiper
似乎'fooTabPage.fxml'包含一個'Tab'作爲根節點。這應該是「Tab」的內容。當然你也可以使用'Tab'作爲'fooTabPage.fxml'的根元素,但是你需要刪除周圍的''部分,這樣fxml變得更難重用。 – fabian