TableCell,在TableView中获得位置

Tom*_*zyk 2 tableview tablecell javafx-8

如何获得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(".....");
Run Code Online (Sandbox Code Playgroud)

Jam*_*s_D 5

你可以得到实际TableColumn使用this.getTableColumn();。如果您确实需要索引,则可以执行

TableColumn<...> column = getTableColumn();
int colIndex = getTableView().getColumns().indexOf(column);
Run Code Online (Sandbox Code Playgroud)

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

行索引就是

this.getIndex();
Run Code Online (Sandbox Code Playgroud)

有关所有可用方法,请参见Javadocs