JTable Focus Movement Query? - PullRequest
       1

JTable Focus Movement Query?

0 голосов
/ 30 сентября 2011

Я пытаюсь выделить движение фокуса в JTable с помощью этого кода:

    if(e.getKeyCode() == (KeyEvent.VK_TAB)){
                int prevRow;
                int row = table.getSelectedRow();
                int col = table.getSelectedColumn();
                if(col == 0) {
                System.out.println(row);
                MinMax val = null;
                TableCellRenderer currRend = table.getCellRenderer(row,col);
                val = (MinMax) table.getValueAt(row, col);
                JComponent comp = (JComponent) currRend.getTableCellRendererComponent(table, val, false, false, row,col);
                comp.setBorder(BorderFactory.createLineBorder(Color.RED));
                table.requestFocus(true);   
}

Сценарий таков, когда я нажимаю клавишу TAB в первый раз, когда выбирается вторая строка, первоначальнофокус устанавливается на строку [0], граница не окрашивается, когда я нажимаю второй раз, когда выбирается третья строка, выделяя как 2, так и 3-ю строку.

После этого при каждом нажатии клавиши табуляции выделяется выделениеГраница становится релевантной для выбора строки.

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

1 Ответ

1 голос
/ 30 сентября 2011

Нет причин беспокоиться о KeyEvents из KeyListener, если не сгенерировано какое-то дополнительное специальное Events, реализует prepareRenderer, и там вы должны проверить, если isSelected() или hasFocus(), я думаючто все и ничего лучше, как @ camickr Рендеринг таблицы строк ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...