1 pièce(s) jointe(s)
Problème affichage Jtable
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:
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:
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);
}
} |
Code:
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);
}
} |
J'ai suivi ce tuto pour le réaliser:
http://baptiste-wicht.developpez.com...ing/jtable/#L4
Voilà ce que j'ai actuellement: