相同的代码,不同的结果,大家帮忙看看为什么
private void jtabdbkeyPressedUP(KeyEvent e) {
if(e.getKeyCode()==38) //响应非数字键盘向上方向键
{
if (jtabdb.getSelectedRow() - 1> =0)
{
this.jtabdb.setRowSelectionInterval(jtabdb.getSelectedRow()-1 ,jtabdb.getSelectedRow() );
getjtabdbTOtxt();
}
}
}
==========================================================
以上代码运行正常,以下有问题
==========================================================
private void jtabdbkeyPressedDOWN(KeyEvent e){
if(e.getKeyCode()==40) // 响应非数字键盘向下方向键
{
if(jtabdb.getSelectedRow()+1!=jtabdb.getRowCount())
{
this.jtabdb.setRowSelectionInterval(jtabdb.getSelectedRow()+1 ,jtabdb.getSelectedRow() );
getjtabdbTOtxt();
}
/* if(jtabdb.getSelectedRow() +1 !=jtabdb.getRowCount())
{
this.jtabdb.setRowSelectionInterval(jtabdb.getSelectedRow() ,jtabdb.getSelectedRow() );
jtabdb.getValueAt(jtabdb.getSelectedRow(),0);
this.getjtabdbTOtxt();
} */
}
}
==========================================================
症状:选第一行读到Textfiled中时,显示的是上一行的数据
最后一行无法读出
[解决办法]
if(jtabdb.getSelectedRow()+1!=jtabdb.getRowCount())
改成以下语句试试?
if(jtabdb.getSelectedRow() + 1 < jtabdb.getRowCount())
看上去似乎第一行的行号为0,最后一行是jtabdb.getRowCount() - 1
