关于JTable的一个奇怪的问题!!(100分)

  • 主题发起人 主题发起人 zhuoyuesky
  • 开始时间 开始时间
Z

zhuoyuesky

Unregistered / Unconfirmed
GUEST, unregistred user!
我用JTable(Vector rows, Vector columnHeads)建立的table
并用table.getSelectionModel().addListSelectionListener(new
OnSelectRows()) 增加了一个监听程序用于得到被select的row的index
JTable 删除一行
int indexn = table.getSelectedRow();
DefaultTableModel dtm = (DefaultTableModel)table.getModel();
dtm.removeRow(indexn);
问题出在程序运行后select行点删除就出现异常错误
java.lang.ArrayIndexOutOfBoundsException: -1 < 0
可是如果屏蔽掉addListSelectionListener就没事了。
这是为什么?期望高手指点迷津!
 
因为你没有选择行呀,试试这样
int indexn = table.getSelectedRow();
if ( indexn == -1 )
return;
DefaultTableModel dtm = (DefaultTableModel)table.getModel();
dtm.removeRow(indexn);
如果还是有问题,那就是你的TableModel的事了,因为你没有定义他的存储区,所以remove的时候会出问题;
 
to lxh_ming
if ( indexn == -1 )
return;
这一句我写了。可不行我用setTitle(String.valueof(indexn))试了一下indexn每次都有
值我在建JTable的实例时没有用TableModel,用的是
JTable(Vector rows, Vector columnHeads);
可是为什么如果将table.getSelectionModel().addListSelectionListener(new OnSelectRows())
这个监听程序屏蔽掉就就Select那一行删那一行。

 
发现错误原因了是在addListSelectionListener。lxh_ming谢谢,给分。
 
后退
顶部