Bonjour,
Dans le cadre d'un projet de classe, je dois implémenter plusieurs JTable qui affiche différents objets à l'intérieur.
Pour éviter de devoir créer autant de classe TableModel qu'il y a de types d'objets, j'ai créé une classe générique TableModel<E> qui étant AbstractTableModel.
J'ai également créé un interface Tablelable, qui contient les méthodes public String[] getColumns() et public Object getValueForCol(int col). Chaque objet qui doit s'afficher dans une table implémente cet interface, du coup je peux retrouver les colonnes et les valeurs de mes objets indépendamment du type.
Cependant, j'aimerais savoir si le type générique E de mon TableModel peut être spécialisé. J'entends par là qu'il soit limité aux type Tablelable.
Voici une portion de code en exemple :
Merci beaucoup !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 //Ici, j'aimerais que E soit un objet Tablelable public class TableModel<E> extends AbstractTableModel { String[] columns; LinkedList<E> values; public TableModel(Tablelable e) { values = new LinkedList<E>(); columns = e.getColumns(); } @Override public int getColumnCount() { return columns.length; } @Override public int getRowCount() { return values.size(); } @Override public String getValueAt(int row, int col) { if (row < getRowCount() && col < getColumnCount()) { return values.get(row).valueAt(col); } return null; } @Override public String getColumnName(int column) { return columns[column]; } }
Partager