我是新來的Java Fx。我有一個TabPanel與3個選項卡。每個選項卡都有很多控件(文本,按鈕等),我想要的是爲所有選項卡分配一個控制器。 SceneBuilder只允許我爲整個視圖分配一個控制器,也就是說,只有頂部面板(根)具有「控制器類」選項,因此如何爲一個類中的所有選項卡編寫代碼。JavaFx TabPane:想要一個控制器對於2個或更多選項卡
我有.fxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<Pane lns="http://javafx.com/javafx/8"xmlns:fx="http://javafx.com/fxml/1"
fx:controller="Application.LoginController">
<children>
<TabPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight=" -
Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0"
tabClosingPolicy="UNAVAILABLE">
<tabs>
<Tab text="Register">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0"
prefWidth="200.0">
<children>
<Label layoutX="27.0" layoutY="45.0" text="Name" />
<Label layoutX="27.0" layoutY="102.0" text="Password"
/>
<Label layoutX="27.0" layoutY="151.0" text="City" />
<Label layoutX="27.0" layoutY="204.0" text="Email" />
<Label layoutX="27.0" layoutY="246.0" text="Phone" />
<TextField fx:id="name"
layoutX="164.0"layoutY="41.0"/>
<TextField fx:id="passwd" layoutX="164.0"
layoutY="98.0" />
<TextField fx:id="city" layoutX="164.0"
layoutY="147.0" />
<TextField fx:id="email" layoutX="164.0"
layoutY="200.0" />
<TextField fx:id="phone" layoutX="164.0"
layoutY="242.0" />
<Button fx:id="register" layoutX="129.0"
layoutY="308.0" mnemonicParsing="false" text="Register" />
<Button fx:id="cancle" cancelButton="true"
layoutX="274.0" layoutY="308.0" mnemonicParsing="false" text="Cancle" />
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Login">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0"
prefWidth="200.0">
<children>
<Label layoutX="26.0" layoutY="57.0" text="User Name"
/>
<Label layoutX="26.0" layoutY="103.0" text="Password"
/>
<Button fx:id="myLogin" layoutX="145.0"
layoutY="186.0" mnemonicParsing="false" text="Login" />
<Button fx:id="cancle" cancelButton="true"
layoutX="274.0" layoutY="186.0" mnemonicParsing="false" text="Cancle" />
<TextField fx:id="uName" layoutX="145.0"
layoutY="53.0" prefHeight="25.0" prefWidth="205.0" />
<TextField fx:id="pwd" layoutX="148.0" layoutY="99.0"
prefHeight="25.0" prefWidth="200.0" />
</children>
</AnchorPane>
</content>
</Tab>
</tabs>
</TabPane>
</children>
</Pane>
[如何用不同的fxml文件創建多個javafx控制器?](https://stackoverflow.com/questions/19342259/how-to-create-multiple-javafx-controllers-with-different-fxml文件) – Cris
但我想在單個fxml中的多個選項卡的單個控制器 –
您的當前控制器可以處理與其關聯的所有選項卡。無需爲不同的選項卡創建不同的控制器。 – Sedrick