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 :

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];
	}
 
}
Merci beaucoup !