【问题标题】:TableCell, getting its position in TableViewTableCell,获取它在 TableView 中的位置
【发布时间】:2015-02-18 15:03:10
【问题描述】:

如何在类实现中获取 TableCell 的位置,以便可以执行以下操作:?

@Override
public void updateItem(Integer item, boolean empty) {
    super.updateItem(item, empty);

int x = thisCellColumnNumber();
int y = thisCellRowNumber();

if((x == 2) && (y == 3))
   setStyle(".....");

【问题讨论】:

    标签: tableview javafx-8 tablecell


    【解决方案1】:

    您可以使用this.getTableColumn(); 获取实际的TableColumn。如果你真的需要索引,你可以这样做

    TableColumn<...> column = getTableColumn();
    int colIndex = getTableView().getColumns().indexOf(column);
    

    这有点难看(而且很慢)。但是,只知道该列就足够了。 (此外,您确实“已经知道这一点”;您的表格单元格来自附加到列的表格单元格工厂;因此您始终可以计算列索引并在创建时将其传递给单元格。)

    行索引只是

    this.getIndex();
    

    请参阅Javadocs 了解所有可用方法。

    【讨论】:

    • by 所以你总是可以计算列索引并在创建时将其传递给单元格。你的意思是这样的:public class EditingCellNumbers extends TableCell&lt;MyData, Integer&gt;{ private int thisCellColumnNumber 然后将列号传递给构造函数?
    • 是的,就是这样。它假定您没有以更改现有索引的方式动态添加和删除列,在这种情况下,您可能不得不返回getTableView().getColumns(),如前所示。
    • 我希望有更快的方法来获取列索引,就像 this.getIndex() 但我会找出最好的方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2020-02-05
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多