2012-08-14 15 views
5

の値はJTableの7つの値になり、Beanにバインドします。JTableでブール値をJGoodiesとバインドする方法

どのようにバインドしますか?

すべてのJTableバインディングの例は、テーブル選択のバインドに焦点を当てていますが、私はそれらの値が何であるかについてのみ気にしています。

+0

これらのブール値は別の豆(別名:行)にありますか?その場合は、直接Beanにバインドするか... ... – kleopatra

+0

行または列に7つの異なるブール値があることを意味しますか?行がある場合は、7つのブール値属性を持つBeanを定義し、各属性を各列にバインドできます。列の場合は、どういう意味なのか分かりません。基本的なことは、各行がBeanを表すことです。したがって、7つの異なるブール値は、7つの異なる豆を意味します。 –

+0

JTablesはObjectとして値を格納するので、他の値の型をバインドするのと同じ方法でブール値をバインドすることができます – Felype

答えて

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

希望します。

関連する問題