2012-08-14 19 views
5

JTable numaralı sütunda, fasulye ile bağlamak istediğim yedi boolean değerine sahibim.JGoodies ile JTable'da booleanlar nasıl bağlanır

Onları nasıl bağlarım?

Tüm JTable bağlayıcı örnekleri, tablo seçimini bağlama üzerine odaklanır, ancak ben yalnızca bu booleans değerlerinin ne olduğunu umursuyorum.

+0

tam olarak anlamadı - bu booleanlar farklı fasulyelerde (aka: satırlar)? Öyleyse, fasulye/s'ye doğrudan bağlanın ... – kleopatra

+0

Bir satırda veya bir sütunda yedi farklı boole değeri mi demek istiyorsunuz? Üst üste ise, yedi boolean özniteliğine sahip bir fasulyeyi tanımlayabilir ve her bir sütunu her bir sütuna bağlayabilirsiniz. Sütununun ne anlama geldiğinden emin değilim. Temel şey her sıra bir fasulye temsil eder. Yani sütundaki yedi farklı boole değeri yedi farklı fasülye anlamına gelir. –

+0

J Değerleri Nesne olarak depolar, böylece boole değerlerinden bağımsız olarak, bunları başka bir değer türüne bağladığınız şekilde bağlayabilirsiniz – Felype

cevap

1

Kendi veri modelinizi uygulamanız gerekir. Size kullanım fikrini gösteren basitleştirilmiş örnek vereceğim. GetColumnClass yöntemine bir göz atın.

Kullanım: table.setModel (yeni 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); 
    } 
} 

Bu yardımcı olur umarım.

İlgili konular