Sie müssen ein eigenes Datenmodell implementieren. Ich gebe Ihnen ein vereinfachtes Beispiel, das eine Nutzungsidee zeigt. Sehen Sie sich die getColumnClass-Methode an.
Verwendung: table.setModel (neues 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);
}
}
Hoffe, das hilft.
nicht ganz verstehen - diese Booleans sind auf verschiedenen Bohnen (aka: Zeilen)? Wenn ja, binde direkt an die Bean/s ... – kleopatra
meinst du sieben verschiedene boolesche Werte in einer Zeile oder in einer Spalte. Wenn es in einer Zeile ist, können Sie eine Bean mit sieben booleschen Attributen definieren und jedes Attribut an jede Spalte binden. In der Spalte bin ich nicht sicher, was es bedeutet. Grundlegend ist, dass jede Zeile eine Bean darstellen würde. Also sieben verschiedene boolesche Werte in der Spalte bedeutet sieben verschiedene Bohnen. –
JTables speichern Werte als Object, so dass Sie unabhängig davon, ob es sich um boolesche Werte handelt, diese auf die gleiche Weise binden können, wie Sie einen anderen Wertetyp binden – Felype