1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| //défini l'header
ArrayList<String> header = new ArrayList<String>(
Arrays.asList("id","Catégorie", "Sélection"));
Class[] columnTypes = new Class[] {
String.class,String.class, Boolean.class
};
//crée le modèle utilisé pour jtable
final MyTableModel modelCateg = new MyTableModel(movie.getCateg(),header,columnTypes);
class MyTableModel extends AbstractTableModel {
//list contanant les données
private ArrayList<Object[]> rows;
//list contenant l'entete
private ArrayList<String> header;
//list contenant les types de colonnes
private Class[] columnTypes;
public MyTableModel(ArrayList<Object[]> data,ArrayList<String> header,Class[] colTypes){
this.rows = data;
this.header = header;
this.columnTypes = colTypes;
}
public void addRow(Object[] row) {
//ici j'ajoute à ma list mais à la fin
rows.add(0,row);
fireTableDataChanged();
}
public void emptyData(){
this.rows.clear();
fireTableDataChanged();
}
public void setData(ArrayList<Object[]> data){
this.rows.clear();
this.rows = data;
fireTableDataChanged();
}
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
@Override
public int getColumnCount(){
return header.size();
}
public int getRowCount() {
return rows.size();
}
@Override
public String getColumnName(int col){
return header.get(col).toString();
}
@Override
public Object getValueAt(int row, int col){
return rows.get(row)[col];
}
@Override
public boolean isCellEditable(int row, int col){
return true;
}
} |
Partager