Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2627 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  "paint" en java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"paint" en java

n°365517
ramiral
Posté le 17-04-2003 à 19:27:09  profilanswer
 

je recherche un programme en java qui s'apparente a paint c'est a dire ou on peut dessiner a main levée, faire des figures, insérer une image etc..
le peu de code que j'ai trouvé sur le net ne fonctionne pas
merci de m'aider

mood
Publicité
Posté le 17-04-2003 à 19:27:09  profilanswer
 

n°365532
the big be​n
Posté le 17-04-2003 à 19:47:59  profilanswer
 

tient je crois que c est ca ... enfin ca fait plus que rien que a main levée mais tu fera le tri...
 
Ben
 
import java.awt.*;
import java.lang.Math;
import java.awt.event.*;
import java.awt.Graphics;
import java.applet.Applet;
 
/*
  <APPLET
      CODE=draw.class
      WIDTH=600
      HEIGHT=200 >
  </APPLET>
*/
 
public class draw extends Applet implements ActionListener, MouseListener, MouseMotionListener {
    Button bDraw, bLine, bOval, bRect, bRounded;  
    Point dot[] = new Point[1000];  
    Point start, end;
    int dots = 0;
 
    boolean mouseUp = false;
    boolean draw = false;
    boolean line = false;
    boolean oval = false;
    boolean rectangle = false;
    boolean rounded = false;
 
    public void init()  
    {
        bLine = new Button("Dessiner des lignes" );
        bOval = new Button("Dessiner des ovales" );
        bRect = new Button("Dessiner des rectangles" );
        bRounded = new Button("Dessiner des rectangles arrondis" );
        bDraw = new Button("Dessiner à main levée" );
 
        add(bLine);  
        add(bOval);  
        add(bRect);  
        add(bRounded);  
        add(bDraw);  
 
        bLine.addActionListener(this);
        bOval.addActionListener(this);
        bRect.addActionListener(this);
        bRounded.addActionListener(this);
        bDraw.addActionListener(this);
 
        addMouseListener(this);
        addMouseMotionListener(this);
    }
     
    public void mousePressed(MouseEvent e)
    {
        mouseUp = false;
        start = new Point(e.getX(), e.getY());
    }
 
    public void mouseReleased(MouseEvent e)
    {
        if(line){
            end = new Point(e.getX(), e.getY());  
        } else {
            end = new Point(Math.max(e.getX(), start.x),  
                Math.max(e.getY(), start.y));  
            start = new Point(Math.min(e.getX(), start.x),  
                Math.min(e.getY(), start.y));  
        }
        mouseUp = true;
        repaint();  
    }
 
    public void mouseDragged(MouseEvent e)
    {
        if(draw){
            dot[dots] = new Point(e.getX(), e.getY());
            dots++;
            repaint();
        }
    }
 
    public void mouseClicked(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseMoved(MouseEvent e){}
 
    public void paint (Graphics g)  
    {
        if (mouseUp) {
            int width = end.x - start.x;
            int height = end.y - start.y;  
 
            if(line){
                g.drawLine(start.x, start.y, end.x, end.y);
            }  
            else if(oval){
                g.drawOval(start.x, start.y, width, height);
            }
            else if(rectangle){
                g.drawRect(start.x, start.y, width, height);
            }
            else if(rounded){
                g.drawRoundRect(start.x, start.y, width, height, 10, 10);
            }
            else if(draw){
                for(int loop_index = 0; loop_index < dots - 1; loop_index++){
                    g.drawLine(dot[loop_index].x, dot[loop_index].y,  
                        dot[loop_index + 1].x, dot[loop_index + 1].y);  
                }
            }
        }
    }
 
    public void actionPerformed(ActionEvent e)
    {
        setFlagsFalse();
        if(e.getSource() == bDraw)draw = true;
        if(e.getSource() == bLine)line = true;
        if(e.getSource() == bOval)oval = true;
        if(e.getSource() == bRect)rectangle = true;
        if(e.getSource() == bRounded)rounded = true;
    }
 
    void setFlagsFalse()
    {
        rounded = false;
        line = false;
        oval = false;
        rectangle = false;
        draw = false;
    }
}

n°365547
ramiral
Posté le 17-04-2003 à 19:55:23  profilanswer
 

c'est deja pas mal je vais le tester  
mais précisément je cherche un programme (de préférence applet) dans une fenètre ou on peut choisir la forme et les couleurs des figures que l'on veut dessiner
je te remercie déja de ton aide

n°365551
ramiral
Posté le 17-04-2003 à 20:02:16  profilanswer
 

que faut il modifier pour que les dessisn ne soient pas effacés a chaque fois?

n°365554
ramiral
Posté le 17-04-2003 à 20:04:02  profilanswer
 

un petit up pour un programme a rendre demain midi...... :sweat:

n°365572
ramiral
Posté le 17-04-2003 à 20:25:04  profilanswer
 

je ne vois pas ce qui ne marche pas dans ce programme de démo fourni avec jdk
 
import java.awt.event.*;
import java.awt.*;
import java.applet.*;
 
import java.util.Vector;
 
public class DrawTest extends Applet{
    DrawPanel panel;
    DrawControls controls;
 
    public void init() {
 setLayout(new BorderLayout());
 panel = new DrawPanel();
        controls = new DrawControls(panel);
 add("Center", panel);
 add("South",controls);
    }
     
    public void destroy() {
        remove(panel);
        remove(controls);
    }
 
    public static void main(String args[]) {
 Frame f = new Frame("DrawTest" );
 DrawTest drawTest = new DrawTest();
 drawTest.init();
 drawTest.start();
 
 f.add("Center", drawTest);
 f.setSize(300, 300);
 f.show();
    }
    public String getAppletInfo() {
        return "A simple drawing program.";
    }
}
 
class DrawPanel extends Panel implements MouseListener, MouseMotionListener {
    public static final int LINES = 0;
    public static final int POINTS = 1;
    int    mode = LINES;
    Vector lines = new Vector();
    Vector colors = new Vector();
    int x1,y1;
    int x2,y2;
    int xl, yl;
 
    public DrawPanel() {
 setBackground(Color.white);
 addMouseMotionListener(this);
 addMouseListener(this);
    }
 
    public void setDrawMode(int mode) {
 switch (mode) {
   case LINES:
   case POINTS:
     this.mode = mode;
     break;
   default:
     throw new IllegalArgumentException();
 }
    }
 
 
    public void mouseDragged(MouseEvent e) {
        e.consume();
        switch (mode) {
            case LINES:
                xl = x2;
                yl = y2;
                x2 = e.getX();
                y2 = e.getY();
                break;
            case POINTS:
            default:
                colors.addElement(getForeground());
                lines.addElement(new Rectangle(x1, y1, e.getX(), e.getY()));
                x1 = e.getX();
                y1 = e.getY();
                break;
        }
        repaint();
    }
 
    public void mouseMoved(MouseEvent e) {
    }
 
    public void mousePressed(MouseEvent e) {
        e.consume();
        switch (mode) {
            case LINES:
                x1 = e.getX();
                y1 = e.getY();
                x2 = -1;
                break;
            case POINTS:
            default:
                colors.addElement(getForeground());
                lines.addElement(new Rectangle(e.getX(), e.getY(), -1, -1));
                x1 = e.getX();
                y1 = e.getY();
                repaint();
                break;
        }
    }
 
    public void mouseReleased(MouseEvent e) {
        e.consume();
        switch (mode) {
            case LINES:
                colors.addElement(getForeground());
                lines.addElement(new Rectangle(x1, y1, e.getX(), e.getY()));
                x2 = xl = -1;
                break;
            case POINTS:
            default:
                break;
        }
        repaint();  
    }
 
    public void mouseEntered(MouseEvent e) {
    }
 
    public void mouseExited(MouseEvent e) {
    }
 
    public void mouseClicked(MouseEvent e) {
    }
 
    public void paint(Graphics g) {
 int np = lines.size();
 
 /* draw the current lines */
 g.setColor(getForeground());
 g.setPaintMode();
 for (int i=0; i < np; i++) {
     Rectangle p = (Rectangle)lines.elementAt(i);
     g.setColor((Color)colors.elementAt(i));
     if (p.width != -1) {
  g.drawLine(p.x, p.y, p.width, p.height);
     } else {
  g.drawLine(p.x, p.y, p.x, p.y);
     }
 }
 if (mode == LINES) {
     g.setXORMode(getBackground());
     if (xl != -1) {
  /* erase the last line. */
  g.drawLine(x1, y1, xl, yl);
     }
     g.setColor(getForeground());
     g.setPaintMode();
     if (x2 != -1) {
  g.drawLine(x1, y1, x2, y2);
     }
 }
    }
}
 
 
class DrawControls extends Panel implements ItemListener {
    DrawPanel target;
 
    public DrawControls(DrawPanel target) {
 this.target = target;
 setLayout(new FlowLayout());
 setBackground(Color.lightGray);
 target.setForeground(Color.red);
 CheckboxGroup group = new CheckboxGroup();
 Checkbox b;
 add(b = new Checkbox(null, group, false));
 b.addItemListener(this);
 b.setBackground(Color.red);
 add(b = new Checkbox(null, group, false));
 b.addItemListener(this);
 b.setBackground(Color.green);
 add(b = new Checkbox(null, group, false));
 b.addItemListener(this);
 b.setBackground(Color.blue);
 add(b = new Checkbox(null, group, false));
 b.addItemListener(this);
 b.setBackground(Color.pink);
 add(b = new Checkbox(null, group, false));
 b.addItemListener(this);
 b.setBackground(Color.orange);
 add(b = new Checkbox(null, group, true));
 b.addItemListener(this);
 b.setBackground(Color.black);
 target.setForeground(b.getForeground());
 Choice shapes = new Choice();
 shapes.addItemListener(this);
 shapes.addItem("Lines" );
 shapes.addItem("Points" );
 shapes.setBackground(Color.lightGray);
 add(shapes);
    }
 
    public void paint(Graphics g) {
 Rectangle r = getBounds();
 
 g.setColor(Color.lightGray);
 g.draw3DRect(0, 0, r.width, r.height, false);
    }
 
  public void itemStateChanged(ItemEvent e) {
    if (e.getSource() instanceof Checkbox) {
      target.setForeground(((Component)e.getSource()).getBackground());
    } else if (e.getSource() instanceof Choice) {
      String choice = (String) e.getItem();
      if (choice.equals("Lines" )) {
 target.setDrawMode(DrawPanel.LINES);
      } else if (choice.equals("Points" )) {
 target.setDrawMode(DrawPanel.POINTS);
      }
    }
  }
}
 
 
 
     

n°365646
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-04-2003 à 20:57:43  profilanswer
 

ramiral a écrit :

un petit up pour un programme a rendre demain midi...... :sweat:  


 
ça serait plus constructif et efficace si tu essayais de le faire et que tu posais des questions sur ce qui marche pas :sarcastic:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°365677
ramiral
Posté le 17-04-2003 à 21:18:37  profilanswer
 

up  :cry:

n°365685
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-04-2003 à 21:27:52  profilanswer
 

quoi up ?
tu veux un truc tout fait, c'est pas conforme au règlement en vigueur ici, donc si c'est tj ça que tu veux tu l'auras pas :p


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°365829
deltaden
Posté le 18-04-2003 à 03:49:45  profilanswer
 

ramiral a écrit :

je ne vois pas ce qui ne marche pas dans ce programme de démo fourni avec jdk


il marche très bien... :o


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
mood
Publicité
Posté le 18-04-2003 à 03:49:45  profilanswer
 

n°365854
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-04-2003 à 08:47:29  profilanswer
 

[:blueflag]


---------------
J'ai un string dans l'array (Paris Hilton)
n°365928
darklord
You're welcome
Posté le 18-04-2003 à 09:39:10  profilanswer
 

ramiral a écrit :

un petit up pour un programme a rendre demain midi...... :sweat:  


 
ban :o


---------------
Just because you feel good does not make you right
n°376976
ramiral
Posté le 29-04-2003 à 18:42:53  profilanswer
 

c'est lamentable ce que j'ai rendu mais merci qd meme tout le monde

n°377413
FealiT
Posté le 30-04-2003 à 04:31:39  profilanswer
 

et c'est ce genre de type qui gradue.. pauvre compagnie


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  "paint" en java

 

Sujets relatifs
un equivalent de HTML template en Java ...[JAVA] Comment lire dans une shared-memory C ?
[JAVA] Probleme lecture fichier texte[Java-Corba] Problème de call back
[Java]Pb de couleurCoup de main Java
[JAVA] Mettre un prog java en service windows...Y a-t-il un équivalent du system("cls") du C++ en java ?
[java] dessiner une image ailleurs que dans paint()[Java] Paint des composants
Plus de sujets relatifs à : "paint" en java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR