JTable焦点移动查询?

时间:2011-09-30 08:56:53

标签: java swing jtable

我试图通过此代码突出显示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行。

之后,只要按下选项卡,边框的突出显示就会与行选择相关。

当我在正常模式下运行应用程序而不是在具有断点的de-bugger模式下时,我遇到了问题。

1 个答案:

答案 0 :(得分:1)

没有理由对来自KeyEvents的{​​{1}}感到困扰,如果没有生成一些额外的特殊KeyListener,请执行Events,那么你必须测试是否prepareRenderer 1}}或isSelected(),我认为一切都没有更好,就像@ camickr的Table Row Rendering