È necessario implementare il proprio modello di dati. Ti do un esempio semplificato che mostra l'idea di utilizzo. Dai un'occhiata al metodo getColumnClass.
Uso: table.setModel (nuovo 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);
}
}
Spero che questo aiuti.
fonte
2013-06-04 15:21:32
non capisco bene: quei booleani sono su fagioli diversi (ovvero: righe)? In tal caso, esegui il bind direttamente nel bean/s ... – kleopatra
intendi sette diversi valori booleani in una riga o in una colonna. Se è in una riga, puoi definire un bean con sette attributi booleani e associare ciascun attributo a ciascuna colonna. Se la sua colonna non è sicura, significa che cosa significa. La cosa fondamentale è che ogni riga rappresenterebbe un bean. Quindi sette diversi valori booleani sulla colonna indicano sette diversi bean. –
JTables memorizza i valori come Object in modo che, indipendentemente dai valori booleani, è possibile associarli allo stesso modo in cui si associa qualsiasi altro tipo di valore – Felype