Change the random draw line here for a mouseListener draw
CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2

Thread: Change the random draw line here for a mouseListener draw

  1. #1
    Join Date
    Feb 2011
    Posts
    1

    Change the random draw line here for a mouseListener draw

    Hi, im working on a "paint" program. So far, i have a GUI with 1 button "Ligne" and one drawable panel. in my class Paint_Dessin, theres a method call TracerLigne(). this method draw line folowing a random patern. What i want to do is put a mouselistener so x1,y1 = click1 and x2,y2 = click 2. this is my code. Thank you (sorry for the french comment)

    **************************************
    //cree une fenetre
    public class QUESTION
    {
    public static void main(String[] args)
    {
    Paint_GUI test2 = new Paint_GUI();
    }
    }
    ***********************************
    ***********************************
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;

    public class Paint_GUI extends JFrame
    {
    //Panels contenant tout les bouton de mon interface
    private JPanel panelBtn;

    //Bar d'outil Btn
    private JButton BtnTracerLigne;

    //créer l'objet Paint_Dessin
    private Paint_Dessin espaceDessin = new Paint_Dessin();

    public Paint_GUI()
    {
    final int WINDOW_WIDTH = 650;
    final int WINDOW_HEIGHT = 450;

    setSize (WINDOW_WIDTH, WINDOW_HEIGHT);
    setTitle("Paint v.2.0");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());

    // Appeler la methode qui construit la barre de BTN.
    buildPanelBtn();
    add(panelBtn, BorderLayout.NORTH);
    add(espaceDessin, BorderLayout.CENTER);

    // Afficher la fenetre.
    setVisible(true);
    }

    private void buildPanelBtn()
    {
    BtnTracerLigne = new JButton("Ligne");
    BtnTracerLigne.addActionListener(new LigneListener());

    // Creer le panel.
    panelBtn = new JPanel();
    // Ajouter les composantes au label
    panelBtn.add(BtnTracerLigne);
    }
    private class LigneListener implements ActionListener
    {
    public void actionPerformed(ActionEvent e)
    {
    espaceDessin.TracerLigne();
    }
    }
    }
    ********************************************
    *******************************************

    import java.awt.*;
    import java.awt.geom.*;
    import javax.swing.*;
    import java.util.*;
    import java.awt.image.*;

    class Paint_Dessin extends JPanel {
    private static final long serialVersionUID = -2110723486099015303L;
    private static final Random RAND = new Random();
    private BufferedImage buffer = null;

    @Override
    public void paintComponent(final Graphics g) {
    final Graphics2D g2 = (Graphics2D) g;
    g2.clearRect(0, 0, getWidth(), getHeight()); // cleanup du composant
    g2.drawImage(getBuffer(), null, 0, 0);
    }

    public void TracerLigne() {
    final Graphics2D g2 = getBuffer().createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASIN G,
    RenderingHints.VALUE_ANTIALIAS_ON);
    g2.setColor(Color.BLACK);
    // dessin la ligne au pif dans l'espace visible
    final int x1 = RAND.nextInt(500); // position en X1
    final int y1 = RAND.nextInt(500); // position en Y1
    final int x2 = RAND.nextInt(500); // position en X2
    final int y2 = RAND.nextInt(500); // position en Y2
    g2.drawLine(x1, y1, x2, y2);
    Line2D.Double line = new Line2D.Double(x1, y1, x2, y2);
    g2.fill(line);
    repaint();
    }

    private BufferedImage getBuffer() {
    if (buffer == null)
    buffer = new BufferedImage(getWidth(), getHeight(),
    BufferedImage.TYPE_INT_ARGB);
    return buffer;
    }
    }
    ***********************************************

  2. #2
    dlorde is offline Elite Member Power Poster
    Join Date
    Aug 1999
    Location
    UK
    Posts
    10,163

    Re: Change the random draw line here for a mouseListener draw

    So what part of adding a MouseListener is causing you difficulty?

    Walking on water and developing software from a specification are easy if both are frozen...
    E. Berard
    Please use [CODE]...your code here...[/CODE] tags when posting code. If you get an error, please post the full error message and stack trace, if present.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Windows Mobile Development Center


Click Here to Expand Forum to Full Width

This is a CodeGuru survey question.


Featured


HTML5 Development Center