如何将true转换为Boolean.TRUE?

时间:2012-10-24 05:36:05

标签: java eclipse swing user-interface jtable

  

可能重复:
  Set Jtable/Column Renderer for booleans

现在我的Jtable中有:

enter image description here

但我希望:

enter image description here

因此,我想,我必须将我的真实/虚假转变成对象,如:

  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;
}

4 个答案:

答案 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();
}
  • for example

  • 为了更好的帮助,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,它不够聪明,不能将您的布尔值显示为刻度线(复选框)。

它还有一个示例代码,可帮助您实现您想要实现的目标。