为了账号安全,请及时绑定邮箱和手机立即绑定

使用抽象表模型获取JTable中选定的行

使用抽象表模型获取JTable中选定的行

忽然笑 2019-07-05 16:15:03
使用抽象表模型获取JTable中选定的行我有一个JTable使用AbstractTableModel我有一个JCheckBox在用于选择行的第一列中。现在,我需要从选中的表中获取选中的行。现在,我正按顺序从第一行遍历到最后一行,并获得所选的所有行,如下所示,List<Integer> selectedRows = new ArrayList<Integer>();for(int i = 0; i < table.getRowCount(); i++) {      if((Boolean) table.getValuAt(i, 0)) {          selectedRows.add(i);      }}这里的问题是,当我需要获得选定的行时,我需要遍历所有的行。现在我有10到20排。但在未来,我将得到大约5000行。我的问题是,如果有5000行,如果用户只选择5000nd(最后一个记录)行,那么我需要遍历所有5000行才能得到所选的行。我觉得这不是个好办法。我想实现的一种方法是,将侦听器添加到JCheckBox列,以便在任何时候都有更改。(SELECTED/DESELECTED)然后,我需要更新侦听器类中选定行的数组。在此侦听器类中,当用户选择JCheckBox我需要打电话table.getSelectedRow(..)我需要存储如果JCheckBox被选中。有没有更好的方法?
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

我同意克莱奥帕特拉的说法。创建抽象表模型的子类时,将覆盖setValue(Object值、int rowIndex、intcolIndex)。在重写的方法中,只需检查列是否带有复选框,如果是,则适当地更新内部数据结构。您还可以添加一个getCheckedRows()方法,该方法返回一个列表<Integer>,其中包含选中复选框的行。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 552 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号