Tracer une ligne java

cs_Dolllly Messages postés 1 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 6 avril 2010 - 6 avril 2010 à 01:50
uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 - 6 avril 2010 à 08:08
Je veux créer une simple application qui permet de choisir une couleur et une forme et la tracer en java. Mais j'arrive pas à compléter la méthode actionPerformed() :(
Aidez-moi svp

code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;


public class k extends JFrame {
private Panel zoneDessin = new Panel ();
private Panel zoneChoix = new Panel ();
private Color couleur = Color.BLACK;
Button rouge = new Button ("Rouge");
Button bleu = new Button ("Bleu");
Button ligne = new Button("ligne");


public k(){
add("North",zoneChoix);
zoneChoix.add(ligne);
zoneChoix.add(rouge);
zoneChoix.add(bleu);
add("Center",zoneDessin);
ActionListener Ecouter = new ActionListener(){
public void actionPerformed (ActionEvent e)
{
if ((e.getSource() == rouge)&& (e.getSource()== ligne)) {


couleur=Color.RED;
// dessiner une ligne
}
else if ((e.getSource() == bleu) && (e.getSource()== ligne)){

couleur=Color.blue;
// dessiner une ligne
}
}
};

rouge.addActionListener(Ecouter);



}
public static void main(String[] args) {
new k().setVisible(true);

}
}
merci d'avance

1 réponse

uhrand Messages postés 491 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 15 juillet 2012 9
6 avril 2010 à 08:08
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Line2D;
import java.util.*;
import java.util.List;
import javax.swing.*;

public class DessinDemo extends JFrame {

    private JPanel zoneDessin = new JPanel() {

        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2d = (Graphics2D) g;
            for (Forme shape : formes) {
                g2d.setColor(shape.getCouleur());
                g2d.draw(shape.getForme());
            }
        }
    };
    private JPanel zoneChoix = new JPanel();
    private Color couleur = Color.BLACK;
    private JButton rouge = new JButton("Rouge");
    private JButton bleu = new JButton("Bleu");
    private JButton ligne = new JButton("ligne");
    private List<Forme> formes;
    private final Random r;

    public DessinDemo() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);
        add(zoneChoix, BorderLayout.NORTH);
        zoneChoix.add(ligne);
        zoneChoix.add(rouge);
        zoneChoix.add(bleu);
        add(zoneDessin, BorderLayout.CENTER);
        r = new Random();
        ActionListener Ecouter = new ActionListener() {

            public void actionPerformed(final ActionEvent e) {
                if (e.getSource() == rouge) {
                    couleur = Color.RED;
                } else if (e.getSource() == bleu) {
                    couleur = Color.blue;
                }
                if (e.getSource() == ligne) {
                    formes.add(new Forme(new Line2D.Double(r.nextInt(200), r.nextInt(200), r.nextInt(200), r.nextInt(200)), couleur));
                }
                zoneDessin.repaint();
            }
        };
        ligne.addActionListener(Ecouter);
        rouge.addActionListener(Ecouter);
        bleu.addActionListener(Ecouter);
        formes = new ArrayList<Forme>();
    }

    public static void main(final String[] args) {
        Runnable gui = new Runnable() {

            public void run() {
                new DessinDemo().setVisible(true);
            }
        };
        SwingUtilities.invokeLater(gui);
    }
}

class Forme {

    private Shape forme;
    private Color couleur;

    public Forme(final Shape forme, final Color couleur) {
        this.forme = forme;
        this.couleur = couleur;
    }

    public Color getCouleur() {
        return couleur;
    }

    public Shape getForme() {
        return forme;
    }
}
0
Rejoignez-nous