gpt4 book ai didi

loops - JavaFX 8 : Iterate through TableView cells and get graphics

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

我在访问 TableColumn 中显示的对象时遇到问题

这是我设置一列图形的代码片段。只想显示 Person 对象的名称:(欢迎使用任何更好/更简单的方法)

ownerColumn
.setCellFactory(new Callback<TableColumn<Site, Person>, TableCell<Site, Person>>() {

@Override
public TableCell<Site, Person> call(
TableColumn<Site, Person> param) {

TableCell<Site, Person> ownerCell = new TableCell<Site, Person>() {

@Override
protected void updateItem(Person item, boolean empty) {
if (item != null) {
Label label = new Label(item.getName());
setGraphic(label);
}
}
};
return ownerCell;
}
});

现在我试图遍历行和列,让每个单元格在最后生成一个报告,反射(reflect) Tableview 中显示的文本/图形。像这样
for (Object r : this.tableview.getItems()) {
for (Object c : this.tableview.getColumns()) {
javafx.scene.control.TableColumn column = (javafx.scene.control.TableColumn) c;

if (column.getCellData(r) != null) {
// I get the object bound to the cell here, but I only want
// to have what i've set as graphics - what the user sees on UI
// How to use getGraphics() ?
}
}
}

所以问题是,我如何获得我在 CellFactory 中设置的 getGraphics()?

最佳答案

任何类型的单元格内容的静态方法。

Method getItems() gets the value of the property items. Property is the underlying data model for the TableView. Note that it has a generic type that must match the type of the TableView itself.


  private static ArrayList<String> getTableViewValues(TableView tableView) {
ArrayList<String> values = new ArrayList<>();
ObservableList<TableColumn> columns = tableView.getColumns();

for (Object row : tableView.getItems()) {
for (TableColumn column : columns) {
values.add(
(String) column.
getCellObservableValue(row).
getValue());
}
}

return values;
}

关于loops - JavaFX 8 : Iterate through TableView cells and get graphics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26815442/

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