JavaFX 选项卡式窗格,每个选项卡上都有一个表视图?

dha*_*lia 4 tabs javafx tableview

我有一个选项卡式窗格,每个选项卡上都有一个表格。我向表格中添加了不同的项目,我只希望每个选项卡向我显示该表格的各个项目。但什么也没有出现。当我调试时,我可以清楚地看到选项卡窗格,其中包含选项卡,包含表视图,包含正确的项目。

为什么这不起作用?!

谢谢!

  primaryStage.setTitle("TEST");
  Group root = new Group();
  Scene scene = new Scene(root, 400, 300, Color.WHITE);

  TableView tv1 = new TableView();
  TableView tv2 = new TableView();

  TableColumn<String, String> clmn = new TableColumn<>("Test");
  clmn.setPrefWidth(230);

  tv1.getColumns().addAll(clmn);
  tv2.getColumns().addAll(clmn);

  List<String> firstItems = new ArrayList<>();
  firstItems.add("ONE");
  firstItems.add("TWO");
  firstItems.add("THREE");
  tv1.setItems(FXCollections.observableArrayList(firstItems));

  List<String> secondItems = new ArrayList<>();
  secondItems.add("1");
  secondItems.add("2");
  secondItems.add("3");
  tv2.setItems(FXCollections.observableArrayList(secondItems));

  TabPane tabPane = new TabPane();
  BorderPane mainPane = new BorderPane();

  //Create Tabs
  Tab tabA = new Tab();
  tabA.setText("Tab A");
  tabA.setContent(tv1);
  tabPane.getTabs().add(tabA);

  Tab tabB = new Tab();
  tabB.setText("Tab B");
  tabB.setContent(tv2);
  tabPane.getTabs().add(tabB);

  mainPane.setCenter(tabPane);
  mainPane.prefHeightProperty().bind(scene.heightProperty());
  mainPane.prefWidthProperty().bind(scene.widthProperty());  
  root.getChildren().add(mainPane);
  primaryStage.setScene(scene);
  primaryStage.show();
Run Code Online (Sandbox Code Playgroud)

空的:

在此处输入图片说明

Jam*_*s_D 5

您的代码有两个问题(我立即看到):

您需要在 .csv 文件的每一列上设置一个单元格值工厂TableView。没有这个,列就没有任何要显示的数据。所以你需要类似的东西

clmn.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue()));
Run Code Online (Sandbox Code Playgroud)

其次,您TableColumn对两个表都使用相同的内容。我认为这行不通;这些单元格最终会被添加到场景图中的两个不同位置(这是不允许的)。为每个表创建不同的列。