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 69 70 71 72
| public static void main(String[] args) {
JFrame frame = new JFrame("Exemple");
JPanel panel1 = createPanel1();
JPanel panel2 = createPanel2();
CardLayout cardLayout = new CardLayout();
JPanel panel = new JPanel(cardLayout);
panel.add(panel1,"panel1");
panel.add(panel2,"panel2");
frame.add(panel);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Menu");
menuBar.add(menu);
JMenuItem menuItem1 = new JMenuItem("Afficher 1");
menu.add(menuItem1);
JMenuItem menuItem2 = new JMenuItem("Afficher 2");
menu.add(menuItem2);
frame.setJMenuBar(menuBar);
menuItem1.addActionListener(e-> showPanel(panel, cardLayout, panel1, "panel1"));
menuItem2.addActionListener(e-> showPanel(panel, cardLayout, panel2, "panel2"));
frame.pack();
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static void showPanel(JPanel container, CardLayout cardLayout, JPanel panel, String id) {
cardLayout.show(container, id);
JFrame frame = (JFrame) SwingUtilities.getWindowAncestor(panel);
Dimension dim = panel.getPreferredSize();
container.setPreferredSize(dim);
Rectangle bounds = frame.getBounds();
frame.pack();
Rectangle newbounds = frame.getBounds();
frame.setLocation((int)(bounds.getCenterX()-newbounds.getWidth()/2), (int)(bounds.getCenterY()-newbounds.getHeight()/2));
}
public static JPanel createPanel1() {
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets=new Insets(3, 3, 3, 3);
gbc.fill=GridBagConstraints.HORIZONTAL;
for(int i=0; i<10; i++) {
gbc.gridy=i;
for(int j=0; j<10; j++) {
gbc.gridx=j;
panel.add(new JButton("Button " + (1 +(i*10) + j)), gbc);
}
}
return panel;
}
public static JPanel createPanel2() {
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets=new Insets(3, 3, 3, 3);
gbc.fill=GridBagConstraints.HORIZONTAL;
for(int i=0; i<5; i++) {
gbc.gridy=i;
for(int j=0; j<5; j++) {
gbc.gridx=j;
panel.add(new JLabel("Label " + (1 +(i*10) + j)), gbc);
}
}
return panel;
} |
Partager