我正在使用Java 8(1.8.0_60)处理JavaFX独立应用程序,并且我正面临TabPane的问题(没有成功,但仍然搜索了很多)。
我有一个视图(使用JavaFX Scene Builder 2.0制作的FXML表单),它有一个带有两个Tabs的TabPane。我打开这个表单作为一个对话框(它有自己的控制器),以便弹出"弹出"表格没有退出主表格。问题是"标签1和#34;中的一些组件。出现在"标签2"当我切换它们。因为我的应用程序中有很多其他选项卡(对话框中没有人)并且从未遇到过这个问题,所以我猜这与我在对话框中使用TabPane这一事实有关
A print of the issue, notice that "Label of Tab 1" is from Tab 1 but is appearing in Tab 2
以下是一些摘录,以提供更多问题背景:
对话框控制器(让我们称之为DialogController):
private FXMLLoader fxmlLoader;
private Stage dialogStage;
public DialogController() {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(resourcePath));
fxmlLoader.setRoot(this);
fxmlLoader.setController(this);
fxmlLoader.load();
Stage dialogStage = new Stage();
dialogStage.setTitle(stageTitle);
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(getMainApplicationStage());
dialogStage.setScene(new Scene(fxmlLoader.load()));
}
主控制器:
DialogController priceController = new DialogController();
dialogController.getDialogStage().showAndWait();
FXML文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<fx:root maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" type="AnchorPane" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<TabPane prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<tabs>
<Tab text="Untitled Tab 1">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Label layoutX="24.0" layoutY="23.0" text="Label of Tab1" />
</children>
</AnchorPane>
</content>
</Tab>
<Tab text="Untitled Tab 2">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Label layoutX="38.0" layoutY="62.0" text="Label of Tab 2" />
</children>
</AnchorPane>
</content>
</Tab>
</tabs>
</TabPane>
</children>
</fx:root>
我做错了什么或忘记在对话框中打开表单的内容?