我在jTable的第一列里用new Boolean(false)建了一列复选框,判断哪一个被选中时可以用:
for (int i = 0; i < model.getRowCount(); i++)
{
if (model.getValueAt(i, 0).equals(new Boolean(true)))
{
}
}
但是如果想判断全部没被选中时输出一个信息,怎么判断?
for (int i = 0; i < model.getRowCount(); i++)
{
if (model.getValueAt(i, 0).equals(new Boolean(true)))
{
}
}
但是如果想判断全部没被选中时输出一个信息,怎么判断?
import java.awt.Container;
import java.util.HashMap;
import java.util.Vector;import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;public class ExchangeDemo extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private Vector<Vector<Object>> data = new Vector<Vector<Object>>();
private static final Vector<String> COLUMN_NAMES = new Vector<String>(); private int iCount = 0;
// 用来存储id和行的对应关系,看着方便一点
private HashMap<String, Integer> idToRowMap = new HashMap<String, Integer>(); public ExchangeDemo() {
super();
initData();
Container c = getContentPane();
final JTable table = new JTable();
table.setModel(new DefaultTableModel(data, COLUMN_NAMES) { @Override
public void setValueAt(Object value, int row, int column) { if (column == 0) {
int iValue;
try {
iValue = Integer.parseInt(value.toString());
} catch (Exception e) {
// TODO: 这地方的判断小子自己做吧
e.printStackTrace();
return;
} if (iValue - 1 >= data.size()) {
// 这地方通常好的软件有一些比较强的处理,我就先拿这个顶了
JOptionPane.showMessageDialog(table, "error");
return;
}
if (row < data.size() && column < COLUMN_NAMES.size()) { Object oldValue = data.get(row).get(column); data.get(row).set(column,
value == null ? "" : value.toString());
data.get(idToRowMap.get(String.valueOf(iValue))).set(
column, oldValue);
//
Integer row1 = idToRowMap.get(value);
Integer row2 = idToRowMap.get(String.valueOf(iValue));
idToRowMap.put(value.toString(), row2);
idToRowMap.put(String.valueOf(iValue - 1), row1);
fireTableDataChanged();
}
} else if (column == 3) {
Boolean b = (Boolean) value;
iCount += b ? 1 : -1;
JOptionPane.showMessageDialog(table, "选中个数:" + iCount);
super.setValueAt(value, row, column); } else { super.setValueAt(value, row, column);
}
} //
@Override
public Class<?> getColumnClass(int columnIndex) {
return data.get(0).get(columnIndex).getClass();
}
});
c.setLayout(new BorderLayout());
c.add(new JScrollPane(table));
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
} private void initData() {
for (int i = 0; i < 4; i++) {
COLUMN_NAMES.add("column" + (i + 1));
}
for (int i = 0; i < 20; i++) {
Vector<Object> record = new Vector<Object>();
String id = String.valueOf(i + 1);
record.add(id);
record.add("aa");
record.add("bb");
record.add(new Boolean(false));
data.add(record);
idToRowMap.put(id, new Integer(i));
}
} public static void main(String args[]) {
new ExchangeDemo();
}
}