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

AWT/Swing Java Discussion :

Probleme de JPanel et de paint()


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut Probleme de JPanel et de paint()
    Bonjours a tous et a toute,
    alors voila je voudrais aller droit au but, en esperant que quelqu'un pourra me fournir une reponse.
    Alors voila j'ai une classe qui derive de JFrame. Dans celle-ci j'ai plusieurs JPanel, un pour le menu et un pour le dessin d'un damier (pour le probleme des huits reines).
    Je voudrais donc savoir comment appliquer la methode paint() sur un JPanel en particulier lorsque on en a plusieurs.
    Merci d'avance pour la reponse.

  2. #2
    Membre confirmé Avatar de Thor Tillas
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Par défaut
    euh... je vois pas le problème... il suffit d'avoir une variable par jpanel et de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variableDuPannel.paint();

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Merci d'avoir repondu Thor
    Le probleme c'est que pour utiliser la methode paint() il faut avoir un objet de type graphics : paint (Graphics g).
    Or moi ma classe est une classe qui herite de JFrame comme je l'ai dit, donc il faudrai que je cree moi meme la variable graphics comme ce ceci : private Graphics gr = ..........
    est c'est la ou je bloque parce je n'est pas vu dans l'API que il y avait un constructeur pour ce type de classe.
    J'esper que j'ai etait claire, n'esite pas a me reprendre si ce n'est pas le cas.
    Je debute un peu en java et je doit dire que j'ai un peu de mal depuis ce matin.............

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    C'est tout simple: tu ne dois jamais appeler la méthode paint(Graphics g) d'un composant.

    Par contre si tu veux dessiner sur un composant tu peux la redéfinir pour qu'elle réalise cette opération. Bien qu'en Swing il est préférable et amplement suffisant de seulement redéfinir la méthode paintComponent.

    Bonne nuit ++

  5. #5
    Membre confirmé Avatar de Thor Tillas
    Inscrit en
    Octobre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 113
    Par défaut
    Si je ne m'abuse, il existe une méthode repaint() qui normalement s'occupe de faire le paint(Graphic) avec le bon objet Graphic... Mais c'est pas d'un panel en particulier... c'est pour toute la JFrame

    Il me semble aussi qu'il faut bel et bien redéfinir la méthode paintComponent(Graphic g) si tu crées un objet qui extend Jpanel... mais sinon le JPanel devrait avoir une implémentation déjà faite de cette méthode.

    Donc d'après moi si tu veux mettre à jour ta JFrame tu fais juste un repaint() dans la JFrame et ca va appeler la méthode paint() de chaque composant de ta fenêtre...

    Tiens moi au courant si ca foire...

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Citation Envoyé par sinok
    C'est tout simple: tu ne dois jamais appeler la méthode paint(Graphics g) d'un composant.

    Par contre si tu veux dessiner sur un composant tu peux la redéfinir pour qu'elle réalise cette opération. Bien qu'en Swing il est préférable et amplement suffisant de seulement redéfinir la méthode paintComponent.

    Bonne nuit ++

    Merci Sinok pour la reponse, mais je doit avouer que je ne comprend pas trop ou tu veux en venir. Parce que ce que tu me dit ça marche nikel si je creer une classe " damier extends JPanel" et que dans celle la, je redefini la methode paint(). Mais dans ce cas de figure j'ai d'autre probleme avec les evenements car tous mes boutons et au autre composant ce trouve dans une autra classe "Interface_Graph extends JFrame". Ca marche lorsque j'appel le JPanel Damier dans cette classe, mais ça serait plus simple si je pouvais directement dessiner sur le JPanel ou est inserer le jpanel damier, ça me permettrait de mieu gerer le tous et donc l'affiche dans le damier des positions des reines.
    J'esper que je n'est pas etait trop confus.............lol

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Solution dès le début du constructeur de ta JFrame tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setContentPane(new Damier());

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par sinok
    C'est tout simple: tu ne dois jamais appeler la méthode paint(Graphics g) d'un composant.
    Pour etre precis, tu n'as pas a l'appeler toi-meme dans le cas d'un affichage a l'ecran. Cependant dans le cas ou tu peux fournir un graphics, nottament quand on veut dessiner le composant dans une image ou l'imprimer via une methode/Printable perso customisee, on peut l'appeler sans probleme.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut enfin fini
    Salut a tous.
    Merci a tous de m'avoir aider pour mon probleme.
    J'ai enfin terminer l'application et ell tourne bien.
    Pour mon probleme je doit avouer que j'ai arreter de vouloir dessiner dans un JPanel particulier, j'ai fait une classe extends JPanel et j'ai ensuite appellé une instance de cette classe dans ma classe graphique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec JPanel
    Par riadhhwajdii dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 13/10/2009, 11h52
  2. Probleme affichage Jpanel
    Par thomas2929 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 10/06/2008, 19h11
  3. Probleme de JPanel au centre
    Par ALIAS200 dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 10/06/2007, 23h05
  4. Probleme [SWING]: JPanel dans JscrollPane
    Par malandro dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 24/05/2006, 21h02
  5. [Debutant]Probleme dimensionnement JPanel dans CardLayout
    Par etiennegaloup dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 22/12/2005, 19h08

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