gpt4 book ai didi

javafx-2 - Javafx TableView 格式化

转载 作者:行者123 更新时间:2023-12-02 19:38:39 25 4
gpt4 key购买 nike

我的 fxml 文件具有以下声明:

< TableView fx:id="myTable" prefHeight="756.0" prefWidth="472.0" />

然后在 Java 代码中,我像往常一样添加列,然后设置项目。这按预期工作。

影响该表的唯一其他代码是:

myTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);

它可以很好地自动调整列的大小。但我不知道如何执行以下操作:

  1. 当我向表中添加 1 或 10 个项目时,这些项目会按预期显示在表的前 1 或 10 行中,但表中的行数始终为 21。其余行是只是空的。如果我设置 1 个项目,我希望表格只有 1 行;如果设置 10 个项目,表格只有 10 行。我如何实现这一目标?

  2. 所有列的大小相同。我可以手动调整它们的大小,但我希望列根据其大小自动调整。例如,如果我有 2 列,其中一列包含 1-10 的整数,另一列包含文本描述,则它们的大小相同。如何告诉它根据行内容自动调整列大小?

感谢您的回复!

最佳答案

表格用空行填充布局。尝试通过添加 css 来隐藏它们

.table-row-cell:empty {
-fx-background-color: -fx-background;
}
.table-row-cell:empty .table-cell {
-fx-border-width: 0px;
}

对于#2,您可以检查单元格值工厂中单元格中文本的长度,但我遇到了类似的标题问题。您可以阅读数据集并找出它应该是什么。这些都是近似值,具体取决于字体大小。

添加了这个,我在 cellValueFactory 中尝试了一些东西。

    TableColumn<LineItem,String> amountCol = new TableColumn<>("Amount");
amountCol.setPrefWidth(amountCol.getText().length()*20);
amountCol.setCellValueFactory(new Callback<CellDataFeatures<LineItem, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<LineItem, String> p) {
SimpleStringProperty ssp = new SimpleStringProperty(String.format("%.4f", p.getValue().getAmount()));
amountCol.setPrefWidth(Math.max(amountCol.getPrefWidth(), ssp.get().length()*20));
return ssp;
}
});

关于javafx-2 - Javafx TableView 格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20849087/

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