IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Dessin à main levée


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 0
    Points
    0
    Par défaut Dessin à main levée
    Bonjour, dans le cadre d'un projet je dois créer un éditeur de dessin type paint.

    J'ai plusieurs difficultés : j'essaie de dessiner à maint lever mais mon code ne fonctionne pas
    et la deuxième chose c'est que mes boutons réagissent trop tôt, c'est-à-dire que si j'ai dessiné un ovale auparavant, et que je clique sur le bouton rectangle, il va me dessiner un rectangle à l’intérieur de l'ovale, en gardant les mêmes composantes x,y et sans attendre les nouvelles avec mon clic, comment remédier à ça?
    Donc j'ai crée trois classe, une pour la frame, l'autre pour le panel et la dernière pour la méthode main.

    paint.zip


    Merci pour votre aide, je suis débutante

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Désolé j'ai pas le courage de débugger ca

    Par contre t'as mis 2 fois l'axe X quand tu peints avec le pinceau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int x=(int)(middle.getX());
    int y=(int)(middle.getX());
    a corrigé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int x=(int)(middle.getX());
    int y=(int)(middle.getY());;
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Commence par nous donner le programme minimal compilable qui reproduit le problème.
    Inutile de mettre un ZIP en pièce jointe, très peu de contributeurs courageux iront jusque là
    Choisi plutôt de copier coller le code sans oublier la balise CODE (bouton #).
    Celui qui donne de son temps pour répondre aux problèmes des autres se fait un avis en quelques seconde sur le problème décrit dans un post. Et une pièce jointe ZIP est clairement rebutant
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Merci de vos réponses et de vos conseils!
    Donc j'ai fini par régler mon problème concernant le rectangle et l'ovale.

    Il me reste le problème du dessin à Main levée:

    Dans ma classe paint : contenant la frame j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
     
     
    			   pane3.addMouseListener(new MouseListener() {
     
     
    			    public void mousePressed(MouseEvent e) {
    			    	origin = e.getPoint();
    			    	pane3.setOrigin(origin);	
     
    			    }
    			    public void mouseReleased(MouseEvent e) {
    			    	end = e.getPoint();
    			    	pane3.setEnd(end);
    			    	pane3.repaint();
     
    			    }
     
     
    				public void mouseClicked(MouseEvent arg0) {}
    				public void mouseEntered(MouseEvent arg0) {}
    				public void mouseExited(MouseEvent arg0) {}
    			});
    pour les boutons rectangle et ovale
    et ça pour dessin à main levée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
     
     
    	    public void mousePressed(MouseEvent e){
    	    	xs=e.getX();
    	    	ys=e.getY();
    	    }
     
    	    public void mouseDragged(MouseEvent e){
     
     
    			int x = e.getX(),
    			    y = e.getY();
     
    			xs = x;
    			ys= y;
    		    }
    puis dans ma classe pane contenant le panneau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
     
     
    public class Pane extends JPanel {
     
     
    	public static int x1;
        public static int y1;
        public static int x2;
        public static int y2;
        public int dessin=0;
     
        int x;
        int y;
     
        private Point origin = new Point();
        public Point getOrigin() {
    		return origin;
    	}
    	public void setOrigin(Point origin) {
    		this.origin = origin;
    	}
    	public Point getEnd() {
    		return end;
    	}
    	public void setEnd(Point end) {
    		this.end = end;
    	}
    	private Point end = new Point();
     
     
    	BufferedImage image;
    	Graphics2D g3;
     
     
    	public void paintComponent(Graphics g)
    	{
    		 super.paintComponent(g);
    		 Graphics2D g2 = (Graphics2D) g;
     
    		 if (image==null)
    		 image = new BufferedImage(getWidth(),getHeight(), BufferedImage.TYPE_INT_ARGB);
    		 Graphics2D g3= image.createGraphics();
     
     
     
    		 	int x1 = (int)(origin.getX());
    	        int y1 = (int)(origin.getY());
    	        int x2 = (int)(end.getX());
    	        int y2 = (int)(end.getY());
     
     
     
     
     
     
     
    	if(buttonred){ g3.setColor(Color.red);}
    	if(buttoncyan){ g3.setColor(Color.cyan);}
    	if(buttonblack){ g3.setColor(Color.black);}
    	if(buttongray){ g3.setColor(Color.gray);}
    	if(buttondarkgray){ g3.setColor(Color.darkGray);}
    	if(buttongreen){ g3.setColor(Color.green);}
    	if(buttonblue){ g3.setColor(Color.blue);}
    	if(buttonmagenta){ g3.setColor(Color.magenta);}
    	if(buttonorange){ g3.setColor(Color.orange);}
    	if(buttonpink){ g3.setColor(Color.pink);}
    	if(buttonwhite){ g3.setColor(Color.white);}
    	if(buttonyellow){ g3.setColor(Color.yellow);}
     
    	if(buttonovale){g3.drawOval(x1, y1,x2-x1 ,y2-y1); }
    	if(buttonrectangle){g3.drawRect(x1,y1,x2-x1 ,y2-y1);}
    	if(buttontrait){g3.drawLine(x1,y1,x2,y2); }
    	if(button1){g3.drawLine(x1,y1,x,y); }
     
     
     
    	g2.drawImage(image,null,0,0);
    }
     
     
     
     
     
     
     
     
     
     
    	public void setRed(){buttonred=true; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setCyan(){buttonred=false; buttoncyan=true;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false; buttonwhite=false;buttonyellow=false;}
    	public void setBlack(){buttonred=false; buttoncyan=false;buttonblack=true; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false; buttonwhite=false;buttonyellow=false;}
    	public void setGray(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=true;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setDarkGray() {buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=true;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false; buttonwhite=false;buttonyellow=false;}
    	public void setGreen(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=true; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setBlue(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=true; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setMagenta(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=true;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setOrange(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=true;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setPink(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=true;buttonwhite=false;buttonyellow=false;}
    	public void setWhite(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=true;buttonyellow=false;}
    	public void setYellow(){buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=true;}
     
     
    	public void setRectangle(){buttonovale=false; buttonrectangle=true;buttonpolygone=false; buttontrait=false;button1=false;buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setOvale(){buttonovale=true; buttonrectangle=false;buttonpolygone=false; buttontrait=false;button1=false;buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setTrait(){buttontrait=true; buttonovale=false; buttonrectangle=false;buttonpolygone=false;button1=false;buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	public void setDessin() {button1=true; buttonpolygone=false;buttontrait=false; buttonovale=false; buttonrectangle=false;buttonred=false; buttoncyan=false;buttonblack=false; buttongray=false;buttondarkgray=false;
    	buttongreen=false; buttonblue=false; buttonmagenta=false;buttonorange=false;buttonpink=false;buttonwhite=false;buttonyellow=false;}
    	private boolean buttonrectangle= false, buttonovale=false, buttontrait=false, buttonpolygone=false,button1=false,buttonred=false,buttoncyan=false,buttonblack=false,buttongray=false,buttondarkgray=false,
    	buttongreen=false, buttonblue=false, buttonmagenta=false,buttonorange=false,buttonpink=false,buttonwhite=false,buttonyellow=false;
     
     
    }
    voilà merci encore de vos réponses

Discussions similaires

  1. Logiciel UML "dessins à main levée"
    Par Ricoco dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 01/08/2012, 12h58
  2. Dessin à main levée avec Delphi
    Par Duan dans le forum Débuter
    Réponses: 3
    Dernier message: 17/07/2011, 17h06
  3. Réponses: 1
    Dernier message: 10/01/2011, 14h50
  4. suite dessin polygone à main levée
    Par diambu dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 16/05/2009, 02h59
  5. dessin polygone à main levée sur panel
    Par diambu dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 02/07/2007, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo