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

  FORUM HardWare.fr
  Programmation
  Java

  Problème de "Graphics"

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de "Graphics"

n°821174
berns
Posté le 12-08-2004 à 10:43:32  profilanswer
 

Voici mon probleme...
 
j'ai un JPanel sur lequel je dessine a l'aide d'un "Graphics" en cliquant sur la souris.
 
Pour cela, je place le code qui sert a dessiner dans la fonction "mouseclicked". Je n'ai donc pas de methode paint.
 
 
je veut ouvrir une boite de dialogue a l'aide de la fonction  
JOptionPane.showInputDialog mais cette derniere s'ouvre au milieu de l'ecran et efface les dessin en dessous.
 
Serait-il possible:
1)de ne pas effacer le dessin
2)de déplacer ce type de fenetre afin de ne pas superposer la fenetre principale?
 
Merci d'avance

mood
Publicité
Posté le 12-08-2004 à 10:43:32  profilanswer
 

n°821190
nerisson
Pic-pic
Posté le 12-08-2004 à 10:53:54  profilanswer
 

Ben pour ne pas effacer ton dessin tu dois justement modifier la méthode paint.  
Le plus simple pour toi serait peut être de tout dessiner dans un buffer non visible à l'écran et dans la méthode paint afficher le contenu de ton buffer.


---------------
Light is right
n°821214
berns
Posté le 12-08-2004 à 11:09:31  profilanswer
 

A peu de chose pres voici le type de classe que je souhaite. Comment introduire de "double buffering" la dedans?
 
 
 
private class pane extends JPanel implements MouseListener
{
        public pane()
        {
            addMouseListener(this);
        }
         
        public void mouseClicked(MouseEvent e)
        {
            dessine(Color.BLACK,e.getX(),e.getY());
        }
        private void dessine (Color c, int x, int y)
        {
            Graphics gc = getGraphics ();
            gc.fillOval(100, 100, 10, 10);
        }
}

n°821253
nerisson
Pic-pic
Posté le 12-08-2004 à 11:38:14  profilanswer
 

Tutorial sur le double buffering:
http://java.sun.com/docs/books/tut [...] ering.html


---------------
Light is right
n°821279
axk47
Java Man vs Boolet Man
Posté le 12-08-2004 à 11:57:09  profilanswer
 

berns a écrit :

A peu de chose pres voici le type de classe que je souhaite. Comment introduire de "double buffering" la dedans?


 
Par défaut Swing fait du doubleBuffering il suffit de savoir quelle methodes surchargée
essaie le code suivant

Code :
  1. private class pane extends JPanel implements MouseListener
  2. {
  3.         public pane()
  4.         {
  5.             addMouseListener(this);
  6.         }
  7.         public void paintComponent(Graphics g){
  8. dessine(Color.BLACK,e.getX(),e.getY());
  9. }
  10.         public void mouseClicked(MouseEvent e)
  11.         {
  12.           repaint();
  13.         }
  14.         private void dessine (Color c, int x, int y)
  15.         {
  16.             Graphics gc = getGraphics ();
  17.             gc.fillOval(100, 100, 10, 10);
  18.         }
  19. }


 
 


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
n°821284
axk47
Java Man vs Boolet Man
Posté le 12-08-2004 à 11:59:48  profilanswer
 

il ya une petite erreur dans le code que je t'ai envoyé precedemment
voici le code que je voulais t'nevoyer

Code :
  1. private class pane extends JPanel implements MouseListener
  2.   {
  3.             public pane()
  4.             {
  5.                   addMouseListener(this);
  6.             }
  7.             public void paintComponent(Graphics g){
  8.             dessine(g,Color.BLACK,e.getX(),e.getY());
  9.             }
  10.             public void mouseClicked(MouseEvent e)
  11.             {
  12.                 repaint();
  13.             }
  14.             private void dessine (Graphics g,Color c, int x, int y)
  15.             {
  16.                   g.fillOval(100, 100, 10, 10);
  17.             }
  18.   }


 
dis moi si ça fait ce que tu veux :??:


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
n°821289
berns
Posté le 12-08-2004 à 12:01:32  profilanswer
 

Ce code ne peut fonctionner vu que paintComponent est une surcharge et donc ne peut recevoir en argument le "MouseEvent e"...

n°821302
axk47
Java Man vs Boolet Man
Posté le 12-08-2004 à 12:06:57  profilanswer
 

d'ailleurs je ne vois pas a quoi sert tes parametres x et y dans la methode

Code :
  1. dessine(..)


vu que tu ne les utilise pas
essaie donc ce code
 

Code :
  1. private class pane extends JPanel implements MouseListener
  2.     {
  3.                 public pane()
  4.                 {
  5.                         addMouseListener(this);
  6.                 }
  7.                 public void paintComponent(Graphics g){
  8.                   dessine(g,Color.BLACK);
  9.                 }
  10.                 public void mouseClicked(MouseEvent e)
  11.                 {
  12.                       repaint();
  13.                 }
  14.                 private void dessine (Graphics g,Color c)
  15.                 {
  16.                         g.fillOval(100, 100, 10, 10);
  17.                 }
  18.     }


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
n°821314
berns
Posté le 12-08-2004 à 12:15:19  profilanswer
 

désolé c'est ma faute ma methode dessine est la suivante
            private void dessine (Color c, int x, int y)  
            {  
                  Graphics gc = getGraphics ();  
                  gc.fillOval(x, y, 10, 10);  
            }  
 
 
elle me pemet de dessiner un point a l'endroit du clic


Message édité par berns le 12-08-2004 à 12:15:53

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

  Problème de "Graphics"

 

Sujets relatifs
[CSS] Probleme multi ligne dans une DIV[C++] problème membre statique
[mysql] piti probleme mysqlprobleme awk
problème de portabilité versions excelproblème formulaire avec envoi de pièce jointe
Problème pour récuperer des variables POST - Débutant -Probleme avec un formulaire et easyphp
Probleme awk & splitProbleme Graphics
Plus de sujets relatifs à : Problème de "Graphics"


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