2023-02-16 353
我在访问TableColumn中显示的对象
中遇到麻烦
这是我设置一列图形的代码段.只想显示个人对象的名称:(欢迎任何更好/更轻松的方法)
)
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;
}
});
现在,我正在尝试循环循环行,列Go将每个单元格在末尾生成报告,以反映表格中显示的文本/图形.像这样
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()?
任何类型的单元含量的静态方法.
方法getItems()获取属性项目的值.属性是
TableView的基础数据模型.请注意,它有一个
必须匹配表图本身的类型的通用类型.
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;
}
此方法访问单元格是不起作用的,因为细胞因素将不会用于为每一行生成1:1个单元格.该单元仅用作轻量级视图发生器,并将重复使用.
您可能会使用:
@Override
protected void updateItem(Person item, boolean empty) {
super.updateItem(item, empty);
if (item != null && !empty) {
setText(item.getName());
} else {
setText(null);
}
}
将简单地显示文本.
a)还检查布尔值空
b)明确清除将因重用案例而设置的所有图形/文本(在此处测试)!
c)始终调用super udateItem()方法.
正如Jens-Peter所说,
表中的单元格和项目之间没有1-1对应关系,因此获取细胞的方法将不起作用.
您应该将table.getItems()视为显示显示的数据.表,表列和表单元格只是这些数据的可视化.请参阅实际数据,而不是它的特定可视化:
for (Site site : tableView.getItems()) {
// owner column data:
Person owner = site.getOwner();
String ownerName = owner.getName();
// ...
}
以上所述是小编给大家介绍的JavaFX 8:遍历TableView单元格并获取图形,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33963.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态