我有一个用Object数组填充的DefaultTableModel。
现在我想用checkBoxes添加一个列,并执行相应的操作。
当我将复选框添加到对象数组中并查看它时,将显示文本
'javax.swing.JCheckBox[,0,0,0x0....',如何让它显示复选框并向其添加操作?
发布于 2010-12-01 02:11:31
JTable具有布尔值的默认复选框渲染器/编辑器。只需使您的TableModel#getColumnClass返回给定列的Boolean.class。
发布于 2010-12-01 02:42:21
如何让它显示复选框
参见Uhlen的答案
并向其添加操作?
使用TableModelListener。类似于:
public void tableChanged(TableModelEvent e)
{
if (e.getType() == TableModelEvent.UPDATE)
{
int row = e.getFirstRow();
int column = e.getColumn();
if (column == ?)
{
TableModel model = (TableModel)e.getSource();
Boolean value = (Boolean)model.getValueAt(row, column));
if (value.booleanValue())
// add your code here
}
}
}发布于 2013-05-04 06:20:59
您也可以只获取类,而不是对每个返回类型进行硬编码。下面是override方法的一个示例:
//create the table
DefaultTableModel tableModel = new DefaultTableModel(data, columnNames)
//override the method
{
public Class<?> getColumnClass(int colIndex) {
return getValueAt(0, colIndex).getClass();
}然后,当您创建表时,您可以这样初始化它:
data[i][12] = new Boolean(false);这会使该框显示为未勾选:)
https://stackoverflow.com/questions/4316915
复制相似问题