Не удается перемещаться по JTable с помощью клавиш со стрелками после использования setRowSelectionInterval (int, int) - PullRequest
1 голос
/ 01 февраля 2011

Я расширяю JTable, и у меня есть метод populateData (), который я использую для загрузки данных в табличную модель. В этом методе я использую:

setRowSelectionInterval(tableRow, tableRow);

И это работает так, как я хочу, чтобы выделить первый ряд. Но есть одна проблема: я не могу переместить выделение в следующую строку с помощью клавиши со стрелкой вниз. Я должен щелкнуть мышью по любой строке (даже той, которая выделена) мышью, чтобы перемещаться с помощью клавиш со стрелками.

void populateData(Collection<Book> b) {
   myModel.populateData(b);
   if (myModel.getRowCount() > 0) {
      setRowSelectionInterval(0, 0);
   }
}

Примечание. Я включаю только выбор строк. Выбор столбцов и ячеек отключен.

Есть идеи как это исправить?

Заранее спасибо.

1 Ответ

2 голосов
/ 01 февраля 2011

Я бы подумал, что нужно сосредоточиться не на столе, чтобы он не реагировал на нажатия клавиш.Вам может потребоваться добавить:

table.requestFocusInWindow();

Если это не сработает, вместо setRowSelectionInterval (...) попробуйте использовать:

table.changeSelection(0, 0, false, false);
...