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


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Points : 101
    Points
    101
    Par défaut Dessiner dans un JPanel
    Je pense que pour vous cette question va vous paraître assez idiote, mais je ne suis pas très fort en prog et encore moins en ce qui concerne le graphisme en JAVA (mais bon j'ai quand même quelques bases ... )
    J'ai tout simplement besoin de dessiner un String dans un JPanel (avec la méthode drawString ). Mais j'ai une exception qui se lève et malgrè mes multiples recherches je n'ai pas trouvé pourquoi.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    JPanel title = new JPanel();
            title.setBackground(Color.WHITE);
            Graphics g = title.getGraphics(); 
            g.setColor(Color.black); 
            g.setFont(new Font("Arial", Font.BOLD, 14)); 
            g.drawString("Hello World",10,25);
    et mon exception est : java.lang.NullPointerException qui est levée dès que j'appelle une méthode sur g.

    Merci

  2. #2
    Membre chevronné
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Points : 2 208
    Points
    2 208
    Par défaut
    Je ne sais pas pourquoi tu as cette exception... mais si je devais dessiner sur un panel , je procéderai ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class PanelDessin extends JPanel{
     
        @Override
        protected void paintComponent(Graphics g){
            super.paintComponent(g);
             g.setColor(Color.black);
             g.setFont(new Font("Arial", Font.BOLD, 14));
             g.drawString("Hello World",10,25);
        }
    }

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 846
    Points : 22 851
    Points
    22 851
    Billets dans le blog
    51
    Par défaut
    car le panel n'est pas realized et que son graphics est null. Pour dessiner dans un panel, il te faut suivre la methode expliquee par afrikha ; ne dessine pas directement dans le graphics du panel car outre l'erreur que tu obtiens, ce que tu y dessineras sera efface lors du prochain re-affichage du panel.

  4. #4
    Membre régulier Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Points : 101
    Points
    101
    Par défaut
    Merci, j'arrive à afficher le texte mais il ne se resize pas quand je resize la fenêtre...
    De plus, j'aimerais pourvoir faire un retour à la ligne et ca ne marche pas quand je fais g.drawString("Hello \n World",10,25);

  5. #5
    Membre habitué
    Avatar de Regnak
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Points : 165
    Points
    165
    Par défaut
    C'est bourrin mais tu peux faire deux objets dessinés

  6. #6
    Membre régulier Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Points : 101
    Points
    101
    Par défaut
    Oui c'est ce que je viens de faire.
    Et pour le resize automatique ? Des suggestions ?

  7. #7
    Membre régulier Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Points : 101
    Points
    101
    Par défaut
    Je viens de réaliser que la taille de la police ne peut pas se resizer puisque je la met en dur dans ma classe PanelDessin, Faudrais donc que je puisse changer la taille de la police dynamiquement selon les dimensions du JPanel...
    Mais ca va devenir n'importe quoi ...
    Je pense qu'il y a une autre solution

  8. #8
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Il ne faut pas faire un getGraphics() pour dessiner sur un composant. Ton dessin disparaîtra au prochain rafraîchissement de l'écran et tu peux en outre rencontrer des problèmes suivant la plateforme.

Discussions similaires

  1. Dessiner dans un Jpanel et l'afficher dans un JFrame
    Par Sourrisseau dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 26/02/2007, 22h41
  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