2012-08-14 22 views
5

के साथ JTable में बूलियन को कैसे बांधें JTable के कॉलम में मेरे पास सात boolean मान हैं जो मैं अपने बीन से बांधना चाहता हूं।JGoodies

मैं उन्हें कैसे बांधूं?

सभी JTable बाध्यकारी उदाहरण तालिका चयन को बाध्य करने पर ध्यान केंद्रित करते हैं, लेकिन मुझे केवल इस बात की परवाह है कि booleans के मूल्य क्या हैं।

+0

काफी समझ में नहीं आता है - वे बूलियन विभिन्न सेम (उर्फ: पंक्तियां) पर हैं? यदि ऐसा है, तो बीन/एस से सीधे बांधें ... – kleopatra

+0

क्या आपका मतलब पंक्ति में या स्तंभ में सात अलग-अलग बूलियन मान हैं। यदि यह एक पंक्ति में है, तो आप सात बूलियन विशेषता के साथ एक बीन परिभाषित कर सकते हैं और प्रत्येक कॉलम में प्रत्येक विशेषता को बांध सकते हैं। अगर इसका कॉलम है, तो मुझे यकीन नहीं है कि इसका क्या अर्थ है। मूल बात यह है कि प्रत्येक पंक्ति एक बीन का प्रतिनिधित्व करेगी। तो कॉलम पर सात अलग-अलग बूलियन मानों का अर्थ है सात अलग सेम। –

+0

जेटीबल्स स्टोर ऑब्जेक्ट्स ऑब्जेक्ट्स के रूप में स्टोर करते हैं, बूलियन मान होने के बावजूद आप उन्हें उसी तरह से बांध सकते हैं जैसे आप किसी अन्य मूल्य प्रकार को बांधते हैं – Felype

उत्तर

1

आपको अपना खुद का डेटा मॉडल लागू करने की आवश्यकता है। मैं आपको सरल उदाहरण देता हूं जो उपयोग के विचार को दिखाता है। GetColumnClass विधि पर एक नज़र डालें।

उपयोग: table.setModel (नया डेटा मॉडल (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); 
    } 
} 

उम्मीद है कि इससे मदद मिलती है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^