public void afficher (JPanel afficher) { panel.removeAll(); panel.add(afficher); panel.revalidate(); // permet de reconstruire la taille et la position des composants au sein du LayoutManager // panel.repaint(); // il se peut que l'appel du repaint soit nécessaire à voir. }
import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; public class Test extends JFrame implements ActionListener{ private static final String CARD_HOME = "home"; private static final String CARD_AGENDA = "agenda"; /* je mets en globale pour le listener */ private JPanel cards = null; public Test() { setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(300, 300); setLocationRelativeTo(null); /* pour le switch entre card */ DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>(); model.addElement(CARD_HOME); model.addElement(CARD_AGENDA); JComboBox<String> cbSwitch = new JComboBox<String>(model); cbSwitch.addActionListener(this); JPanel content = (JPanel)getContentPane(); content.add(cbSwitch, BorderLayout.NORTH); /* panel contenant l'accueil et l'angenda */ cards = new JPanel(); cards.setLayout(new CardLayout()); content.add(cards, BorderLayout.CENTER); /* l'accueil */ JPanel panelAccueil = new JPanel(); panelAccueil.setLayout(new BorderLayout()); panelAccueil.add(new JButton("Bouton d'Accueil")); /* l'agenda */ JPanel panelAgenda = new JPanel(); panelAgenda.setLayout(new BorderLayout()); panelAgenda.add(new JButton("Bouton d'Agenda")); cards.add(panelAccueil, CARD_HOME); cards.add(panelAgenda, CARD_AGENDA); } @Override public void actionPerformed(ActionEvent e) { CardLayout cl = (CardLayout)(cards.getLayout()); JComboBox<?> cb = (JComboBox<?>)e.getSource(); // changement de carte cl.show(cards, cb.getSelectedItem().toString()); } public static void main(String[] args) { new Test().setVisible(true); } }
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; public class Test extends JFrame { public Test() { setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(new Dimension(300, 300)); setLocationRelativeTo(null); JPanel content = (JPanel)getContentPane(); content.setLayout(new BorderLayout());// layout par défaut du content pane // un panel qui sera au nord addPanel(content, Color.WHITE, BorderLayout.NORTH, null); // un panel qui sera au centre addPanel(content, Color.BLACK, BorderLayout.CENTER, null); // un panel qui sera au sud addPanel(content, Color.RED, BorderLayout.SOUTH, null); // un panel qui sera à l'est addPanel(content, Color.GREEN, BorderLayout.EAST, null); // un panel qui sera à l'ouest et avec une largeur préférentielle addPanel(content, Color.BLUE, BorderLayout.WEST, new Dimension(50, 0)); // } private static void addPanel(JPanel content, Color background, String position, Dimension preferredSize) { JPanel panel = new JPanel(); panel.setBackground(background); if(preferredSize != null) panel.setPreferredSize(preferredSize); content.add(panel, position); } public static void main(String[] args) { new Test().setVisible(true); } }
public class Fenetre extends JFrame { private JPanel panel; Accueil accueil; Agenda agenda; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Fenetre frame = new Fenetre(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public Fenetre() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setBounds(100, 100, 1000, 600); setExtendedState(MAXIMIZED_BOTH); accueil = new Accueil(this); agenda = new Agenda(this); panel = (JPanel) getContentPane(); panel.setLayout(new BorderLayout()); panel.add(accueil); } public void afficher (JPanel afficher) { panel.removeAll(); panel.add(afficher); panel.repaint(); afficher.repaint(); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question