import javax.swing.Box; import javax.swing.JCheckBox; import javax.swing.JRadioButton; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JApplet; import java.awt.Dimension; import java.awt.Image; import java.awt.Graphics; import java.awt.Color; import java.awt.BorderLayout; import java.awt.event.ItemListener; import java.awt.event.ItemEvent; import javax.swing.JPanel; import java.awt.Image; import java.awt.Toolkit; class ArdoiseMonde extends JPanel { private boolean faireMonde = false; private boolean entourer = false; static final int PETIT = 10; static final int MOYEN = 20; static final int GRAND = 40; private int rayon = PETIT; private Image image; public ArdoiseMonde(Image image) { this.image=image; setPreferredSize(new Dimension(100, 100)); } public void setRayon(int rayon) { this.rayon = rayon; } public void inverserEntourer() { entourer = !entourer; } public void inverserFaireMonde() { faireMonde = !faireMonde; } public Image getImage() { return image; } public void paintComponent(Graphics g) { super.paintComponent(g); if (faireMonde) g.drawImage(image, getWidth()/2 - rayon, getHeight()/2 - rayon, 2 * rayon, 2 * rayon, this); else { g.setColor(Color.RED); g.fillOval(getWidth()/2 - rayon, getHeight()/2 - rayon, 2*rayon, 2*rayon); } if (entourer) { int i; int largeur, hauteur; largeur = getWidth(); hauteur = getHeight(); g.setColor(Color.BLUE); for(i = 0; i < 10; i++) g.drawOval(largeur/2 - rayon - i, hauteur/2 - rayon - i , 2*rayon + 2 * i, 2 * rayon + 2 * i); } } } class ListenerTaille implements ItemListener { int taille; ArdoiseMonde ardoise; ListenerTaille(int taille, ArdoiseMonde ardoise) { this.taille = taille; this.ardoise = ardoise; } public void itemStateChanged(ItemEvent evt) { ardoise.setRayon(taille); ardoise.repaint(); } } class PanneauCocher extends JPanel { ArdoiseMonde ardoise; JRadioButton petit = new JRadioButton("petit", true); JRadioButton moyen = new JRadioButton("moyen", false); JRadioButton grand = new JRadioButton("grand", false); JCheckBox monde; JCheckBox tour = new JCheckBox("entoure", false); ImageIcon icone; public PanneauCocher(Image image) { ardoise = new ArdoiseMonde(image); ButtonGroup groupe = new ButtonGroup(); Box panneauRadio = Box.createVerticalBox(); Box panneauCocher = Box.createVerticalBox(); Box panneauChoix = Box.createVerticalBox(); icone = new ImageIcon(ardoise.getImage().getScaledInstance (10, 10, Image.SCALE_DEFAULT)); monde = new JCheckBox( "monde", icone); petit.addItemListener(new ListenerTaille(ArdoiseMonde.PETIT, ardoise)); moyen.addItemListener(new ListenerTaille(ArdoiseMonde.MOYEN, ardoise)); grand.addItemListener(new ListenerTaille(ArdoiseMonde.GRAND, ardoise)); tour.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { ardoise.inverserEntourer(); ardoise.repaint(); } }); monde.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { ardoise.inverserFaireMonde(); ardoise.repaint(); } }); groupe.add(petit); groupe.add(moyen); groupe.add(grand); panneauRadio.add(petit); panneauRadio.add(moyen); panneauRadio.add(grand); panneauRadio.setBorder(BorderFactory.createLineBorder(Color.GREEN)); panneauCocher.add(monde); panneauCocher.add(tour); panneauCocher.setBorder(BorderFactory.createLineBorder(Color.RED)); panneauChoix.add(panneauRadio, BorderLayout.NORTH); panneauChoix.add(panneauCocher, BorderLayout.SOUTH); panneauChoix.setBorder(BorderFactory.createLoweredBevelBorder()); setBorder(BorderFactory.createLineBorder(Color.BLACK)); setLayout(new BorderLayout(5, 5)); add(ardoise, BorderLayout.CENTER); add(panneauChoix, BorderLayout.EAST); } } public class Cocher extends JApplet { public void init() { Image image = getImage(getCodeBase(), "world.gif"); setContentPane(new PanneauCocher(image)); } }