import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; /** * Classe qui contient définie la présentation et l'utilisation de l'interface graphique * @param dessin de type DessinFigures * @param bnj JRadioButton pour créer une nouvelle figure * @param btrace JRadioButton pour créer un tracé à main levée * @param bmanip JRadioButton pour manipuler une figure * @param fbox JComboBox pour le choix de la figure à tracer * @param cbox JComboBox pour le choix de la couleur * @param couleur de type Color * @param figure entier représentant le choix de la figure à créer */ public class Fenetre extends JPanel { private static final long serialVersionUID = 1L; private DessinFigures dessin; private JRadioButton bnf; private JRadioButton btrace; private JRadioButton bmanip; private final JComboBox fbox; private final JComboBox cbox; private JButton bColorChooser; private JButton bsuppr; private Color couleur; private int figure; /** * Constructeur de la Classe Fenetre. * */ public Fenetre() { dessin = new DessinFigures(); setLayout(new BorderLayout()); JPanel jp =new JPanel(); ButtonGroup bg = new ButtonGroup(); bnf = new JRadioButton("Nouvelle Figure"); btrace = new JRadioButton("tracé à main levé"); bmanip = new JRadioButton("manipulations"); bg.add(bnf); bg.add(btrace); bg.add(bmanip); jp.add(bnf); jp.add(btrace); jp.add(bmanip); bmanip.setSelected(true); cbox = new JComboBox(new String[]{"rouge", "vert", "jaune", "bleu", "noir"}); fbox = new JComboBox(new String[]{"rectangle","triangle","cercle","quadrilatère"}); jp.add(fbox); jp.add(cbox); bColorChooser = new JButton("autres couleurs"); bsuppr = new JButton("Supprimer", new ImageIcon("images/corbeille_mini.gif") ); jp.add(bColorChooser); jp.add(bsuppr); dessin.setBackground(Color.WHITE); add(dessin, BorderLayout.CENTER); add(jp, BorderLayout.NORTH); couleur = Color.red; bnf.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { switch (figure) { case 0: dessin.construit(new UnRectangle(couleur)); System.out.println("test"); break; case 1: dessin.construit(new UnTriangle(couleur)); break; case 2: dessin.construit(new UnCercle(couleur)); break; case 3: dessin.construit(new UnQuadrilatere(couleur)); break; } } }); btrace.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { dessin.trace(couleur); } }); bmanip.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { dessin.activeManipulationFormes(); } }); bColorChooser.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { JColorChooser jcc = new JColorChooser(); couleur = jcc.showDialog(bColorChooser, "choix de la couleur", Color.BLACK); if(btrace.isSelected()){ btrace.doClick(0); } else { dessin.changeCouleur(couleur); } repaint(); } }); bsuppr.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { dessin.supprime(); repaint(); } }); fbox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { figure = ((JComboBox)e.getSource()).getSelectedIndex(); } }); cbox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { switch (((JComboBox)e.getSource()).getSelectedIndex()){ case 0: couleur = Color.RED; break; case 1: couleur = Color.GREEN; break; case 2: couleur = Color.YELLOW; break; case 3: couleur = Color.BLUE; break; case 4: couleur = Color.BLACK; } if(btrace.isSelected()){ btrace.doClick(0); } else { dessin.changeCouleur(couleur); } repaint(); } }); } }