import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JApplet; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.SwingConstants; class VoirCercle extends JPanel implements ActionListener { JButton bouton1 = new JButton("trace"); JButton bouton2 = new JButton("efface"); boolean disque = false; VoirCercle() { bouton1.setActionCommand("tracer"); bouton2.setActionCommand("effacer"); add(bouton1); add(bouton2); bouton1.addActionListener(this); bouton2.addActionListener(this); setBackground(Color.CYAN); } public void paintComponent(Graphics g) { super.paintComponent(g); if (disque) g.setColor(Color.RED); else g.setColor(Color.CYAN); g.fillOval(100, 50, 100, 100); } public void actionPerformed(ActionEvent e) { String commande = e.getActionCommand(); if (commande.equals("tracer")) disque = true; else if (commande.equals("effacer")) disque = false; repaint(); } } public class CartesApplet extends JApplet implements ActionListener { JButton precedent = new JButton("precedent"); JButton suivant = new JButton("suivant"); JButton leMessage = new JButton("message"); CardLayout gestionnaireDesCartes = new CardLayout(); JPanel jeuCartes = new JPanel(); public void init() { JPanel p = new JPanel(); JTextArea zone = new JTextArea("Vous pouvez ecrire ici."); JLabel message = new JLabel("Bonjour", SwingConstants.CENTER); VoirCercle voirCercle = new VoirCercle(); jeuCartes.setLayout(gestionnaireDesCartes); jeuCartes.setPreferredSize(new Dimension(200, 200)); jeuCartes.add(zone, "zone"); jeuCartes.add(voirCercle, "voir un cercle"); message.setOpaque(true); jeuCartes.add(message, "message"); add(jeuCartes, BorderLayout.CENTER); precedent.addActionListener(this); suivant.addActionListener(this); leMessage.addActionListener(this); p.add(precedent); p.add(suivant); p.add(leMessage); add(p, BorderLayout.SOUTH); ((JPanel)getContentPane()).setBorder(BorderFactory.createLineBorder(Color.BLACK)); } public void actionPerformed(ActionEvent e) { Object obj = e.getSource(); if (obj == precedent) { gestionnaireDesCartes.previous(jeuCartes); } else if (obj == suivant) { gestionnaireDesCartes.next(jeuCartes); } else if (obj == leMessage) { gestionnaireDesCartes.show(jeuCartes,"message"); } } }