JavaFX 2: How to focus a table row programmatically?

brnzn picture brnzn · Dec 6, 2013 · Viewed 20.1k times · Source

I am trying to select/focus a row of a TableView programmatically.

I can select a row, but it is not getting rendered as focused (not highlighted). I have tried many combinations of the code below, but nothing seems to work.

table.getSelectionModel().select(0);
table.focusModelProperty().get().focus(new TablePosition(table, 0, column));
table.requestFocus();

Is it possible to highlight a row programmatically?

I am using JavaFX 2.2.21

Answer

OttPrime picture OttPrime · Dec 6, 2013

Try putting your request for table focus first and then wrapping the whole thing in a runLater.

Platform.runLater(new Runnable()
{
    @Override
    public void run()
    {
        table.requestFocus();
        table.getSelectionModel().select(0);
        table.getFocusModel().focus(0);
    }
});