Tag: jtable

行中的JTable重复值

我有一个JTable填充了一个自定义的DataModel (粘贴在下面),当我调用populate()方法时,它似乎用重复的数据填充表 – 每行一遍又一遍地填充相同的值。 然而,通过仔细检查(通过println()数据字段),数据模型没有错误 – 它保存着我所期望的格式的正确数据。 是什么赋予了? import java.util.ArrayList; import javax.swing.table.AbstractTableModel; @SuppressWarnings("serial") // we don't expect this app to ever use serialized classes. EVER. public class CollectionDataModel extends AbstractTableModel { private ArrayList<ArrayList<String>> data; public CollectionDataModel() { data = new ArrayList<ArrayList<String>>(); } @Override public int getColumnCount() { if(data.isEmpty()) return 0; return data.get(0).size(); } @Override public […]

使用AbstractTableModel获取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则需要存储。 有没有更好的方法?