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();
}
});
}
}