javafx - 为什么这段代码不产生选项卡 Pane ?

标签 javafx fxml

    <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 ,但即使在实现这个简单的示例时我也遇到问题。

enter image description here

最佳答案

如果您使用动态设置根目录

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/

相关文章:

variables - FXML 文件中的常量

java - 如何将监听器添加到使用 CheckBoxListCell 的 ListView 中的复选框

java - NoClassDefFound错误: javafx/beans/InvalidationListener

java - 使用 SQLite 的 JavaFx 表中数据显示不正确

java - Controller 'AdminSceneController' 没有事件槽 'logout' - JavaFX 错误

controller - 子 Controller 未注入(inject)主 Controller

css - 带有图像的 JavaFX CSS 按钮 - 如何定义图像的大小?

JavaFx,@FXML 的问题

JavaFX 更改不同类的 Pane 颜色

java - 节点移动 - JavaFX