GVKun编程网logo

如何向JavaFX 8 TableView添加行和列(javafx tableview添加数据)

85

本文将为您提供关于如何向JavaFX8TableView添加行和列的详细介绍,我们还将为您解释javafxtableview添加数据的相关知识,同时,我们还将为您提供关于cocoa–如何向NSTabl

本文将为您提供关于如何向JavaFX 8 TableView添加行和列的详细介绍,我们还将为您解释javafx tableview添加数据的相关知识,同时,我们还将为您提供关于cocoa – 如何向NSTableView添加页脚视图?、css – JavaFX 2 TableView标题字体颜色、JavaFX 2.1 TableView刷新项、JavaFx 2用单列创建TableView的实用信息。

本文目录一览:

如何向JavaFX 8 TableView添加行和列(javafx tableview添加数据)

如何向JavaFX 8 TableView添加行和列(javafx tableview添加数据)

我在网上看到了一些向TableView添加行的示例,例如使用Oracle文档中的Person类。

但是我的列数是可变的,所以我不能绑定到Person(或任何其他)bean业务对象。

Oracle示例继续显示如何将列绑定到属性名称,但为此,它仅显示如何添加列,而不显示行。

我的问题是,有人可以给我指出一个Hello,World示例,它向JavaFX 8 TableView动态添加任意列和/或行吗?

答案1

小编典典

使用List<String>(例如)作为数据类型,只需将单元格值工厂设置为索引到列表的回调。

例如,这将创建一个TableView<List<String>>由任意制表符分隔的文本文件构造的。并非文件中的所有行都需要具有相同数量的元素(它将用空格填充)。(它不支持转义的制表符等):

public TableView<List<String>> readTabDelimitedFileIntoTable(Path file) throws IOException {    TableView<List<String>> table = new TableView<>();    Files.lines(file).map(line -> line.split("\t")).forEach(values -> {        // Add extra columns if necessary:        for (int i = table.getColumns().size(); i < values.length; i++) {            TableColumn<List<String>, String> col = new TableColumn<>("Column "+(i+1));            col.setMinWidth(80);            final int colIndex = i ;            col.setCellValueFactory(data -> {                List<String> rowValues = data.getValue();                String cellValue ;                if (colIndex < rowValues.size()) {                    cellValue = rowValues.get(colIndex);                } else {                     cellValue = "" ;                }                return new ReadOnlyStringWrapper(cellValue);            });            table.getColumns().add(col);        }        // add row:        table.getItems().add(Arrays.asList(values));    });    return table ;}

cocoa – 如何向NSTableView添加页脚视图?

cocoa – 如何向NSTableView添加页脚视图?

似乎NSTableView没有等效于UITableView的tableFooterView属性.在 Cocoa中向页面视图添加页脚视图的首选方法是什么?

解决方法

NSTableView没有UITableView或NSCollectionView等部分,因此没有页眉和页脚.

相反,如果您使用基于视图的表,则可以通过数据源执行此操作.

>使用页脚中需要的自定义样式/元素在Interface Builder中向表中添加单元格.给它一个像“TableFooter”这样的标识符>递增(乘以1)NSTableViewDataSource的numberOfRowsInTableView(tableView :)返回的行数>并在最后一行的tableView(tableView:viewForTableColumn:row :)中,使用标识符“TableFooter”从storyboard中实例化该项.

css – JavaFX 2 TableView标题字体颜色

css – JavaFX 2 TableView标题字体颜色

如何更改TableView组件标题的文本颜色?

我累了这个:

.table-view .column-header,.table-view .filler {
    -fx-text-fill: white;
    -fx-border-width: 0,0;
    -fx-font-size: 12px;
}

这会删除边框,也会更改字体大小,但不会更改字体颜色.

解决方法

这样的事可能有用.
.table-view .column-header .label {
    -fx-text-fill: white;
    -fx-font-weight: bold;
}

JavaFX 2.1 TableView刷新项

JavaFX 2.1 TableView刷新项

我有这个常见的问题,看来是这样。重置项目后,我的表格视图不会刷新我的项目。我检查了数据,这是新的数据。

我尝试了多种互联网解决方案,但没有成功。

无法重置所有列,因为它会额外增加一个空一(不知道为什么),并且调整大小会中断。

我的表不可编辑。新数据已更改。

如果更改项目的顺序并且行更改(:|),则刷新数据。

我只是没有想法。

目前,刷新代码非常简单。

ObservableList<User> data = FXCollections.observableArrayList(User.getResellers());reseller_table.setItems(data);

同样,新数据是正确的。当我对tableView进行选择时,它将返回新的正确Item。

答案1

小编典典

我在刷新时也遇到了类似的问题。我的解决方案是将的操作限制在ObservableList可以正常使用的操作上bind()

假设ObservableList obsList是的基础列表TableView

然后,
obsList.clear()(从继承java.util.List<>)不会TableView正确更新,但是。

同样调用setItem(obsList)也无法触发刷新…但是…

obsList.removeAll(obsList)(由覆盖ObservableList)工作正常,因为它可以正确触发changeEvent。

然后使用全新内容重新填充列表,如下所示:

  • obsList.removeAll(obsList);
  • obsList.add(...); //e.g. in a loop...

要么

  • obsList.removeAll(obsList);
  • FXCollections.copy(obsList, someSourceList)

JavaFx 2用单列创建TableView

JavaFx 2用单列创建TableView

我正在尝试使用以下代码创建具有单个列的表:

TableView<String> table = new TableView<String>();table.getColumns().clear();table.getColumns().add(new TableColumn<String, String>("City Name"));table.setItems(cityList);

但是我得到一个带有“城市名称”列的表,后面是一个空白列

我是JavaFx的新手,所以可能会有更好的方法。

答案1

小编典典

我记得以前曾尝试通过不带运气的css属性来“删除”空白列。解决方法是
-设置的首选宽度cityColumn以手动覆盖整个空间:

TableColumn<String, String> cityColumn = new TableColumn<String, String>("City Name");cityColumn.setPrefWidth(table.getPrefWidth() - 2);

-2边框宽度。另外,您可以直接将列宽度属性绑定到表宽度属性,从而在调整表宽度大小时会自动更新col宽度。看到这个答案http://codingdict.com/questions/119231。
或者,
-将列调整大小策略设置为CONSTRAINED_RESIZE_POLICY

table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);

我们今天的关于如何向JavaFX 8 TableView添加行和列javafx tableview添加数据的分享已经告一段落,感谢您的关注,如果您想了解更多关于cocoa – 如何向NSTableView添加页脚视图?、css – JavaFX 2 TableView标题字体颜色、JavaFX 2.1 TableView刷新项、JavaFx 2用单列创建TableView的相关信息,请在本站查询。

本文标签: