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

 Java Discussion :

Affichage drawString


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut Affichage drawString
    Bonjour,
    désolé si le problème que je vais soumettre est enfantin, s'il a déjà été traité de nombreuses fois, si ... mais je n'y arrive pas (heure tardive, fatigue ...).
    J'ai copié un exemple sur un livre et cela ne donne pas ce qui est prévu (problème de version de java ?)
    Je travaille sous Eclipse.

    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
     
    import javax.swing.*;
     
    public class Test
    {
     
        public static void main (String[] args)
        {
            JFrame fen = new JFrame("test");
            UnComposant unComposant = new UnComposant(); 
            fen.getContentPane ().add (unComposant);
            fen.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            fen.setSize (300,300);
            fen.setVisible(true);
        }
    }
    et la classe UnComposant

    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
     
    import java.awt.Graphics;
     
    import javax.swing.JComponent;
     
    class UnComposant extends JComponent
    {
     
        public void PaintComponent(Graphics g)
        {
            g.drawString("Bonjour", 120, 50);
        }
     
     
    }
    Quand je lance le programme, la fenêtre s'affiche mais rien est écrit dedans !

    Est-on vraiment obligé même pour un cas aussi simple de passer par SwingUtilities.invokeLater ?

    Les évolutions de Java font-elles que des exemples aussi simples ne s'exécutent plus de la même façon (le livre que j'ai utilisé est pour Java 1.4, et ma version est la 6.

    J'ai mis un system.out.println dans la méthode paintComponant() et j'ai pu constater que celle-ci n'est jamais appelée.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void PaintComponent(Graphics g)
    -->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void paintComponent(Graphics g)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void PaintComponent(Graphics g)
    -->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void paintComponent(Graphics g)
    Quel con je fais !
    Merci beaucoup.
    Parfois la faute est si grosse qu'on la voit pas

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Souvent un œil extérieur est nécessaire pour trouver l'évidence ca m'est arrivé des centaines de fois

    (tu peux mettre le sujet en résolu)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    En plus c'est une erreur bien vicelarde
    car elle n'est pas détectée comme une erreur par le compilateur
    (on a le droit de vouloir avoir une méthode appelée paintComponent)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    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
    pour prévenir ça, rajoute l'annotation @Override au dessus de ta méthode, dans ce cas là, l'erreur sera bien relevée.

    Et accessoirement, il faut en général essayer de respecter la signature de la classe mère, or, paintComponent est définie comme protected et non public. Elle n'est pas censée être exposée aux classes externes.

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

Discussions similaires

  1. DrawString different que affichage Textbox
    Par olibara dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/08/2009, 13h04
  2. DrawString et affichage dans un JPanel
    Par Flophx dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 06/05/2006, 18h38
  3. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  4. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43
  5. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00

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