【发布时间】:2013-08-13 08:30:21
【问题描述】:
为了在 jTable 中获取选定的行,我使用了 MouseEvent (MouseClicked)。这很好用,并在点击表格后给我正确的行号。
为了在 jTable 中导航,我添加了一个新的侦听器 (KeyPressed)。如果我按向上键,则行号不会增加。如果我再次按向上键,行数将被更新,但它是之前的行数。
private void jTable1KeyPressed(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == evt.VK_UP){
System.out.println("Key UP" + jTable1.getSelectedRow());
}
if(evt.getKeyCode() == evt.VK_DOWN){
System.out.println("Key DOWN" + jTable1.getSelectedRow());
}
}
这是简单的代码。如果我单击表格的第一行并按下向下键,则输出为“Key DOWN0”。但是第二行被选中,输出应该是“Key DOWN1”。
【问题讨论】:
-
在您的关键监听器上,您是否调用
int index = myTable.getSelectedRow()>0?myTable.getSelectedRow()-1:0;和myTable.setRowSelectionInterval(index, index);来选择上一行? (或类似的东西)。请包含一些代码,以便更清楚地了解您当前正在做什么,以便我们找出原因。 -
你尝试过什么吗?您能否添加一个简短的可执行代码,如果没有^^,真的很难帮助您。
-
private void jTable1KeyPressed(java.awt.event.KeyEvent evt) { if(evt.getKeyCode() == evt.VK_UP){ System.out.println("Key UP" + jTable1.getSelectedRow()); } if(evt.getKeyCode() == evt.VK_DOWN){ System.out.println("Key DOWN" + jTable1.getSelectedRow()); }这是简单的代码。如果我单击表格的第一行并按下向下键,则输出为“Key DOWN0”。但是第二行被选中,输出应该是“Key DOWN1”。
标签: java swing jtable mouseevent key-events