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 confirmé Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    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 Expert
    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
    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);
        }
    }


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    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 897
    Billets dans le blog
    54
    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.
    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

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    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 éprouvé
    Avatar de Regnak
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

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

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

    Informations professionnelles :
    Activité : Étudiant

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

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    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 confirmé
    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
    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