Salut,
Tu mets directement les boutons de ta matrices dans le content pane de la fenêtre avec un layout manager GridLayout : hors un container ne peut avoir qu'un seul layout manager. Donc si tu ajoutes tes 2 boutons en dessous de la matrice, ils vont être agencés comme les boutons de ta matrice.
Pour changer ça, il te faut composer avec plusieurs containers :
- Un container de type JPanel avec les boutons de ta matrice (donc un layout manager e type GridLayout) ;
- un container de type JPanel pour les boutons, avec le layout manager qui te convient pour la présentation de tes 2 boutons (le layout par défaut du JPanel est un FlowLayout qui peut convenir, mais tu peux utiliser un FlowLayout qui centre
- Les 2 JPanels dans le content pane de la fenêtre, avec un BorderLayout, celui de la matrice au centre, celui des boutons au sud (en bas).
Tu as juste à faire :
public class matrice2 extends JPanel {
(et enlever la méthode initFrame)
Puis :
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
| public class FrameExample extends JFrame {
private matrice2 matrice;
public FrameExample() {
initFrame();
fillContent();
}
public void fillContent() {
setLayout(new BorderLayout());
matrice = new matrice2(10, 10);
add(matrice, BorderLayout.CENTER);
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
JButton buttonValider = new JButton("Valider");
//buttonValider.addActionListener(...);
JButton buttonRetour = new JButton("Retour");
//buttonRetour.addActionListener(...);
buttonPanel.add(buttonValider);
buttonPanel.add(buttonRetour);
add(buttonPanel, BorderLayout.SOUTH);
}
private void initFrame() {
this.setSize(700, 700);
this.setTitle("Matrice du graphe");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public matrice2 getMatrice() {
return matrice;
}
} |
Partager