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 :

Dessiner dans un JPanel quelconque


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Dessiner dans un JPanel quelconque
    Bonjour à tous !
    Je débute en Java et je ne trouve pas comment dessiner dans un JPanel quelconque...

    J'ai bien compris la méthode que la plupart utilise, à savoir créer une classe dérivée de JPanel et surcharger la méthode paintComponent(Graphics g) pour dessiner ce qu'on veut en exploitant le g en question ({ g.fillRectangle([..]); etc }

    Le soucis c'est qu'il est du coup absolument nécessaire de créer une classe spécifique à chaque fois qu'on voudrait dessiner dedans, or j'aimerais pouvoir dessiner dans un Jpanel quelconque sans avoir à créer une classe spéciale à chaque fois, genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Rectangle monRectangle = new Rectangle(10,10,30,50); //classe rectangle qui a comme variables d'instances la position x, y, width et height
    Ellipse monCercle = new Ellipse(30,30,15,15); //même principe
     
    JPanel monPanel = new JPanel([...]);
    JPanel.dessiner(Rectangle);
    JPanel.dessiner(Cercle);

    Savez-vous comment faire...?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le but du paintComponent c'est de répondre à une demande de redessin de l'UI parce que la zone a été occultée, redimensionnée, etc. Le Graphics n'a aucun mémoire. Si tu veux dessiner une image, puis l'afficher de manière permanent, il faut .... suspense.... dessiner une image

    Tu dois utiliser par exemple un BufferedImage, dessiner dedans, en faire un Icon grâce à IconImage et mettre cet Icon dans un JLabel pour être dessiné.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Pardon j'ai dû mal m'exprimer...

    En fait, je veux pouvoir dessiner des formes géométriques dans des JPanel avec les méthodes de l'objet Graphics
    (Graphics.drawRectangle(),
    Graphics.fillOvale(), etc).

    La seule façon que j'ai trouvé et qui fonctionne, c'est de passer par la méthode paintComponent() de la classe JPanel, en créant une classe dérivée de JPanel et de surcharger cette méthode pour pouvoir dessiner mes formes avec ces méthodes, genre comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class monPanel extends JPanel{
    public void paintComponent(Graphics g) {
      g.drawRectangle(10,10,30,30);
      g.fillOvale(20,10,50,60);
    }
    }
    Sauf que j'aimerais pouvoir faire ça sans avoir à surcharger la méthode, et je ne sais pas comment faire...
    ça donnerait un truc genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JPanel unPanelLambda = new JPanel();
    unPanelLambda.sonGraphicG.drawRectangle(10,10,30,30);

Discussions similaires

  1. Dessiner dans un JPanel
    Par mattyeux dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 20/12/2006, 13h16
  2. probleme pour dessiner dans un JPanel
    Par L4BiN dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 02/08/2006, 15h01
  3. [Debutant]Dessiner dans plusieurs JPanels. Probleme
    Par ahage4x4 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 22/05/2006, 12h32
  4. Dessiner dans différents JPanels
    Par N@sH dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 20/05/2005, 15h39
  5. Dessiner dans un JPanel
    Par Oliveuh dans le forum Composants
    Réponses: 5
    Dernier message: 19/07/2004, 12h13

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