【问题标题】:How to bind booleans in JTable with JGoodies如何将 JTable 中的布尔值与 JGoodies 绑定
【发布时间】:2012-08-11 05:30:14
【问题描述】:

我想绑定到我的 bean 的 JTable 的列中有七个 boolean 值。

如何绑定它们?

所有JTable 绑定示例都专注于绑定表选择,但我只关心那些booleans 的值是什么。

【问题讨论】:

  • 不太明白 - 这些布尔值在不同的 bean 上(又名:行)?如果是,直接绑定到bean/s ...
  • 你的意思是一行或一列中有七个不同的布尔值。如果它在一行中,您可以定义一个具有七个布尔属性的 bean 并将每个属性绑定到每个列。如果它的列,我不确定它的含义。基本的事情是每一行都代表一个bean。所以列上的七个不同的布尔值意味着七个不同的bean。
  • JTables 将值存储为对象,因此,无论是布尔值,您都可以像绑定任何其他值类型一样绑定它们

标签: java swing binding jtable jgoodies


【解决方案1】:

您需要实现自己的数据模型。我给你一个简单的例子来展示使用的想法。看一下 getColumnClass 方法。

用法:table.setModel(new DataModel(myData));

class DataModel extends AbstractTableModel
{


    public DataModel(Object yourData){
         //some code here
    }

    @Override
    public int getRowCount() {
        return yourData.rows;
    }

    @Override
    public int getColumnCount() {
        return yourData.colums;
    }

    @Override
    public Class<?> getColumnClass(int col) {
        if (col == myBooleanColumn) {
            return Boolean.class;
        } else {
            return null;
        }
    }

    @Override
    public boolean isCellEditable(int row, int col) 
    {
        return col >= 0;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {

        return yourData.get(rowIndex,columnIndex);
    }

    @Override
    public void setValueAt(Object aValue, int row, int col) {           

    yourData.set(aValue,row,col)    

        this.fireTableCellUpdated(row, col);  
    }
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 2011-01-27
    • 2014-03-26
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多