Tomasz Mularczyk
Tomasz Mularczyk

Reputation: 36209

TableCell, getting its position in TableView

How can I get position of TableCell in class implementation so I can do something like this: ?

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

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

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

Upvotes: 2

Views: 6378

Answers (1)

James_D
James_D

Reputation: 209694

You can get the actual TableColumn with this.getTableColumn();. If you really need the index, you could do

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

which is a bit ugly (and slow). However, just knowing the column should be enough. (Additionally, you really "know this already"; your table cell comes from a table cell factory, which is attached to a column; so you can always figure the column index and pass it to the cell when you create it.)

The row index is just

this.getIndex();

See the Javadocs for all available methods.

Upvotes: 6

Related Questions