<TabPane fx:controller="application.FXMLcontrolor" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="ALL_TABS" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.65">
<tabs>
<Tab text="Untitled Tab 1">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Untitled Tab 2">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</TabPane>
Controller 是这样的
public class FXMLcontrolor extends TabPane
{
public FXMLcontrolor()
{
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource( "FXMLdocument.fxml"));
fxmlLoader.setRoot(this);
fxmlLoader.setController(this);
try
{
fxmlLoader.load();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
主要是这样的:
public class Main extends Application
{
@Override
public void start(Stage stage) throws IOException
{
FXMLcontrolor mainControllor=new FXMLcontrolor();
stage.setScene(new Scene(mainControllor));
stage.setTitle("Custom Control");
stage.setWidth(400);
stage.setHeight(400);
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
结果中没有选项卡,为什么不显示任何选项卡?我已经使用 FXML 创建了 UI 和 Controller ,我必须做什么?事实上,我正在寻找一种方法来管理带有多个选项卡和每个选项卡中的多个控件的选项卡 Pane ,但即使在实现这个简单的示例时我也遇到问题。
最佳答案
如果您使用动态设置根目录
fxmlLoader.setRoot(...);
您需要使用<fx:root>
元素作为 FXML 的根元素。请参阅documentation .
此外,如果您在代码中设置 Controller
fxmlLoader.setController(...);
您不应该指定 fx:controller
FXML 文件中的属性。所以你的 FXML 文件应该是
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.control.Tab?>
<?import javafx.scene.layout.AnchorPane?>
<fx:root type="TabPane" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="ALL_TABS" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.65">
<tabs>
<Tab text="Untitled Tab 1">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Untitled Tab 2">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</fx:root>
关于javafx - 为什么这段代码不产生选项卡 Pane ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40164488/