Salut,

J'essaie de créer un tableau au niveau d'un JScrollpane. L'idée est de réaliser des opérations de type CRUD;
Le tableau s'insère très bien, mais seule la première ligne est éditable. Du coup, je comprend pas.

un exemple qui marche :
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
37
 
 
public class JTableBasicWithScrollPane extends JFrame {
 
	public enum Sport {
		TENNIS, FOOTBALL, SWIMMING, NOTHING
	}
 
	public JTableBasicWithScrollPane() {
		super();
 
		setTitle("Basic JTable in a JScrollPane");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
		Object[][] data = {
				{ "Johnathan", "Sykes", Color.red, true, Sport.TENNIS },
				{ "Nicolas", "Van de Kampf", Color.black, true, Sport.FOOTBALL },
				{ "Damien", "Cuthbert", Color.cyan, true, Sport.NOTHING },
				{ "Corinne", "Valance", Color.blue, false, Sport.SWIMMING },
				{ "Emilie", "Schrödinger", Color.magenta, false, Sport.FOOTBALL },
				{ "Delphine", "Duke", Color.yellow, false, Sport.TENNIS },
				{ "Eric", "Trump", Color.pink, true, Sport.FOOTBALL }, };
 
		String[] headers = { "First name", "Name", "Favourite color", "Gender",
				"Sport" };
 
		JTable table = new JTable(data, headers);
 
		getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
 
		pack();
	}
 
	public static void main(String[] args) {
		new JTableBasicWithScrollPane().setVisible(true);
	}
}
et ce que j'essaie de faire, le modèle est externalisé
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
public class BookTableModel extends AbstractTableModel {
 
	/**
         * serialVersionUID
         */
	private static final long serialVersionUID = 5644635290492219401L;
 
	private final Object[][] data = {
			{ "2253057843", "Le Livre de Poche ", "Le joueur d'échecs",
					"Stefan Zweig", new Boolean(false) },
			{ "2035881412", "Larousse ", "La Divine Comédie",
					"Dante Alighieri", new Boolean(false) } };
 
	private final String[] columnNames = new String[] { "isbn", "éditeur",
			"titre", "auteur", "cocher" };
 
	private final Class[] colClass = new Class[] { String.class, String.class,
			String.class, String.class, Boolean.class };
 
	@Override
	// nécessaire pour afficher le nom des colonnes
	public String getColumnName(int col) {
		return columnNames[col].toString();
	}
 
	@Override
	public int getColumnCount() {
		return columnNames.length;
	}
 
	@Override
	public int getRowCount() {
		return data.length;
	}
 
	@Override
	public Object getValueAt(int row, int col) {
		return data[row][col];
	}
 
	@Override
	public void setValueAt(Object val, int row, int col) {
		data[row][col] = val;
		// Update of specified cell.
		fireTableCellUpdated(row, col);
	}
 
	@Override
	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return true;
	}
 
	@Override
	public Class getColumnClass(int columnIndex) {
		return colClass[columnIndex];
	}
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
table = new JTable(new BookTableModel());
		selectJScrollPane = new JScrollPane(table);
		add(selectJScrollPane);
Si quelqu'un voit ce qui me manque pour que tout le tableau soit éditable, et non plus seulement
la première ligne,;;;merci