gpt4 book ai didi

JavaFX 选项卡式 Pane ,每个选项卡上都有一个 TableView ?

转载 作者:行者123 更新时间:2023-12-01 13:52:26 24 4
gpt4 key购买 nike

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

为什么这不起作用?!

谢谢!

  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();

空的:

enter image description here

最佳答案

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

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

clmn.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue()));

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

关于JavaFX 选项卡式 Pane ,每个选项卡上都有一个 TableView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30656895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com