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 :
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 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); } }
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]; } }Si quelqu'un voit ce qui me manque pour que tout le tableau soit éditable, et non plus seulement
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);
la première ligne,;;;merci
Partager