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 :

Paindre des objets Graphics sur un JPanel, comment procéder ?


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Par défaut Paindre des objets Graphics sur un JPanel, comment procéder ?
    Bonjour,

    Je veux pouvoir afficher des rectangles sur un jPanel. J'ai donc opté pour la méthode paintComponent(Graphics g)

    J'aimerais pouvoir afficher, à loisir, des objets instanciés dans des classes que j'ai moi même crée (rectangle bleu, rectangle rouge, écriture, image).

    Comment dois-je procéder ?

    J'ai deux hypothèses sans doute fausses :
    1-je crée des objets graphics et leur donne les caractéristiques souhaitées contenues dans mes classes(rectangle bleu, rouge...)

    2- j'utilise un extends, ou un implements Graphics pour mes classes rectangles rouge, bleu pour que mes instances de ces classes soient des objets graphics ? Puis je les passes en argument de la fonction paintComponent ? (si c'est faisable, je n'y arrive pas)

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Tes formes ne vont pas étendre Graphics, mais l'utiliser.
    Pour dessiner dans un JPanel tu crées une classe qui hérite de JPanel et tu redéfinis la méthode paintComponent.

    Il y a plusieurs topics sur les forums java qui utilisent le dessin dans des JPanel.

    http://www.developpez.net/forums/d11...eme-arraylist/


    http://www.developpez.net/forums/d11...quune-donnees/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Par défaut
    Merci.
    Si je comprends bien, je placerai des jPanel (un pour chaque objet) dans mon jPanel global, en ajoutant ces objets, dont les méthode paintComponent s'activeront toute seule ?

    Mais comment placer ces jPanel précisément sur mon jPanel ? Existe il une méthode qui me permette de placer ces jPanel sur un autre jPanel selon une position (point) ?

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    NON !

    Tu as un JPanel qui représente ta surface de dessin.
    Ce JPanel possède une méthode paintComponent, dans laquelle tu va dessiner toutes tes formes via l'objet Graphics qui est en paramètre.

    Tes formes n'héritent ni de Graphics ni de JPanel.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Par défaut
    L'objectif est d'afficher mes objets qui sont contenus dans une arrayList, et de différente manière selon les cas. Ces objets ne pouvant pas être des objets graphics (si j'ai ben compris), alors il faut que je crée des objets graphic différents selon la nature de l'objet.
    Quelque chose comme ç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
     
    ArrayList element ; //j'ai une arraylist remplie avec différents objets que je veux dessiner
    for (int i=0; i<element.getSize(); i++){ // je la parcourt
    Graphics g = jPanel.getGraphics(); //je crée un objet graphique dans mon JPanel
    if (element.get(i).getClass().getSimpleName().equals("Phrase")){ // je vérifie la nature de mon objet //dans l'arraylist 
                     Font font = new Font("Courier", Font.BOLD, 12);
                    g.setFont(font);
                    g.setColor(Color.red);
                    g.drawString("j'ai tout compris, 0,0 ); // je l'affiche en position 0.0
    }else {
                                Font font = new Font("Courier", Font.BOLD, 12);
                    g.setFont(font);
                    g.setColor(Color.red);
                    g.drawString("j'ai rien compris, 20,20 ) ;// je l'affiche en position 20,20
    }
    }

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Lis les 2 topics que je t'ai posté. Tu y trouveras des réponses et un exemple.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/06/2011, 14h27
  2. Déplacer des objets images sur une page
    Par KeKeMaN dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 17/02/2009, 09h59
  3. objets graphics sur un datagridview
    Par HULK dans le forum Windows Forms
    Réponses: 0
    Dernier message: 15/12/2008, 12h34
  4. [AJAX] Déplacer des objets HTML sur une page web
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/06/2007, 12h47
  5. Generer des objets aleatoirement sur une carte
    Par K20 dans le forum Langage
    Réponses: 13
    Dernier message: 24/12/2005, 16h19

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