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 60 61 62 63 64 65 66 67 68
| import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class ExempleJFrameAvecBouton {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// on mets le composant créé par createFrameContent() dans la frame
frame.getContentPane().add(createFrameContent());
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static Component createFrameContent() {
// on créé un panel principal, avec un borderlayout
JPanel mainpanel = new JPanel();
mainpanel.setLayout(new BorderLayout());
// on créé un panel avec 10 textes dedans
final JPanel panel = createPanel();
// on créé un bouton
JButton button = new JButton("Bouton");
// on ajoute l'actionListener qui réagira au clic sur le bouton
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panel.removeAll(); // on supprime tous les composants contenus
panel.revalidate(); // on indique que les composants on changé dans le panel et qu'il va falloir relayouter
panel.repaint(); // on redessine le panel
}
});
// on met le panel avec les textes au centre du panel principal
mainpanel.add(panel, BorderLayout.CENTER);
// on met le bouton au sud du panel principal
mainpanel.add(button, BorderLayout.SOUTH);
return mainpanel;
}
private static JPanel createPanel() {
// on créé un panel avec un layout de une colonne de 10 lignes
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(10, 1));
// on créé 10 textes, alignés au centre
for(int i=1; i<=10; i++) {
panel.add(new JLabel("text "+i,JLabel.CENTER));
}
return panel;
}
} |
Partager