Bonjour,
J'ai un formulaire ou j'ai ajouté un JTable et celui-ci présente plusieurs problème:
- J'ai mais deux dernière colonne qui ne s'affiche pas
- Je souhaiterai mettre une taille dynamique pour mes colonnes qui s'ajusterait en fonction de la taille du contenu des cellules
Voici mon code:
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 public class Formation extends JFrame { /** * serialVersionUID */ private static final long serialVersionUID = 1L; private JButton boutonCreer; private JLabel labelNomFormation; private JLabel labelDureeTypeSeance; private JTextField txtNomFormation; private JTextField txtDureeTypeSeance; private JPanel panPrincipal; private JPanel panFormation; private JPanel panChamp; private JPanel panModule; private ModuleTable moduleTable; public Formation(){ this.setTitle("Caractéristique de la formation"); this.setSize(600, 700); this.setLocationRelativeTo(null); this.setVisible(true); // LABEL labelNomFormation = new JLabel("* Nom de la Formation :"); labelNomFormation.setFont(new Font(null, Font.PLAIN, 14)); labelDureeTypeSeance = new JLabel("* Durée type d'une séance :"); labelDureeTypeSeance.setFont(new Font(null, Font.PLAIN, 14)); // TEXT txtNomFormation = new JTextField(); txtDureeTypeSeance = new JTextField(); panChamp = new JPanel(new GridLayout(2,2,20,5)); panChamp.add(labelNomFormation); panChamp.add(txtNomFormation); panChamp.add(labelDureeTypeSeance); panChamp.add(txtDureeTypeSeance); panFormation = new JPanel(new BorderLayout()); panFormation.add(panChamp, BorderLayout.NORTH); moduleTable = new ModuleTable(); panModule = new JPanel(new BorderLayout()); panModule.add(moduleTable, BorderLayout.NORTH); panPrincipal = new JPanel(); panPrincipal.add(panFormation); panPrincipal.add(panModule); boutonCreer = new JButton("Créer la formation"); boutonCreer.setPreferredSize(new Dimension(200, 30)); panPrincipal.add(boutonCreer); this.setContentPane(panPrincipal); } }
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 public class ModuleTable extends JPanel{ /** * serialVersionUID */ private static final long serialVersionUID = 1L; private ModuleTableModele moduleModele = new ModuleTableModele(); private JTable tableau; private JPanel panTableau; public ModuleTable() { super(); tableau = new JTable(moduleModele); tableau.getTableHeader().setBackground(Color.YELLOW); //tableau.setRowHeight(200); //Empêche le déplacement des colonne tableau.getTableHeader().setReorderingAllowed(false); //Empêche de changer la taille des colonne tableau.getTableHeader().setResizingAllowed(false); panTableau = new JPanel(); panTableau.add(tableau); add(new JScrollPane(tableau)); //JPanel boutons = new JPanel(); //boutons.add(new JButton(new AddAction())); //boutons.add(new JButton(new RemoveAction())); //getContentPane().add(boutons, BorderLayout.SOUTH); } }J'ai suivi ce tuto pour le réaliser:
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 public class ModuleTableModele extends AbstractTableModel{ /** * serialVersionUID */ private static final long serialVersionUID = 1L; private final List<Module> modules = new ArrayList<Module>(); private final String[] entetes = {"Nom", "Couleur", "Abréviation", "Nombre de séances, Modifier, Supprimer"}; public ModuleTableModele() { super(); } public int getRowCount() { return modules.size(); } public int getColumnCount() { return entetes.length; } public String getColumnName(int columnIndex) { return entetes[columnIndex]; } public Object getValueAt(int rowIndex, int columnIndex) { //switch(columnIndex){ // case 0: // return amis.get(rowIndex).getPrenom(); //case 1: // return amis.get(rowIndex).getNom(); //case 2: // return amis.get(rowIndex).getCouleur(); //case 3: // return amis.get(rowIndex).isHomme(); //default: return null; //Ne devrait jamais arriver //} } public void addModule(Module module) { modules.add(module); fireTableRowsInserted(modules.size() -1, modules.size() -1); } public void removeModule(int rowIndex) { modules.remove(rowIndex); fireTableRowsDeleted(rowIndex, rowIndex); } }
http://baptiste-wicht.developpez.com...ing/jtable/#L4
Voilà ce que j'ai actuellement:
Partager