现在我的Jtable中有:
但我希望:
因此,我想,我必须将我的真实/虚假转变成对象,如:
Object rowData[][] = { { "1", Boolean.TRUE }, { "2", Boolean.TRUE }, { "3", Boolean.FALSE },
{ "4", Boolean.TRUE }, { "5", Boolean.FALSE }, };
现在我得到这样的数据:
int i=0;
data=new Object[tupel.size()][1];
while(i<tupel.size()){
row=tupel.get(i);
data[i][0]=new Boolean(row.isTrueorFalse());//my "Boolean method"
i++;
}
}
所以我的问题是:
如何将我的数据转换为对象以便我显示滴答?
更新
isTrueorFalse方法:
public boolean isTrueorFalse() {
return isTrueorFalse;
}
答案 0 :(得分:5)
JTable has built_in support for Boolean value,然后渲染器/编辑器显示JCheckBox
必须覆盖XxxTableModel with proper Column Class
中的列@Override
public Class getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
为了更好的帮助,SSCCE发布您的问题,简短,可运行,可编辑。否则这里的每个答案都可能是黑暗的镜头
答案 1 :(得分:2)
如果您确定要将data
作为数组,那么您可以在下面执行此操作。我不确定这是你需要的。
data[i][0]= i;
data[i][1] = row.isTrueorFalse();
然后,您可以在表格模型中设置数据,如下所示
tableModel.set((Integer)data[i][0], (Boolean) data[i][1]);
答案 2 :(得分:2)
data[i][0]=Boolean.valueOf(row.isTrueorFalse());
这不会创建Boolean的任何新对象,只是Boolean.TRUE或Boolean.FALSE。
答案 3 :(得分:2)
您应该创建自己的Table Model。
寻找以下几点:
如果程序员没有提供表模型对象,JTable会自动创建DefaultTableModel的实例。
以下内容:
另一方面,SimpleTableDemo自动创建的表模型不知道#Years年份列包含数字(通常应该是右对齐并具有特定格式)。它也不知道素食列包含布尔值,可以用复选框表示。
构造应该如下:
JTable table = new JTable(new MyTableModel());
而不是使用JTable(Object[][] rowData, Object[] columnNames)
或JTable(Vector rowData, Vector columnNames)
。在这种情况下,它使用DefaultTableModel
,它不够聪明,不能将您的布尔值显示为刻度线(复选框)。
它还有一个示例代码,可帮助您实现您想要实现的目标。