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 :

Comment utiliser drawString


Sujet :

Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut Comment utiliser drawString
    Bonjour à tous,

    Je cherche a comprendre comment afficher du texte dans le contenu de mes fenetres.

    Quel est le meilleur moyen utiliser?
    Est ce l'outil drawString le plus simple pour écrire du texte?

    Comment l'utiliser?

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Par défaut
    Bonjour,

    Pourquoi pas JTextArea ?

    Tu "formates" ton texte que tu envois dans la JTextArea:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     textarea.append(texte);
    Cordialement.

    Dan

  3. #3
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Salut,

    drawString, c'est pour dessiner, tu doit redéfinir la méthode paintComponent des composants (par exemple un JPanel).

    Tu dispose alors d'un objet Graphics en argument.

    drawString, drawChar ou drawByte pour dessiner du texte.

    Pour calculer l'espace que va occupper ta chaine tu peut utiliser l'objet FontMetrics :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void paintComponent(Graphics g) {
         g.setColor(Color.RED);
         FontMetrics fm = g.getFontMetrics(g.getFont());
         int height = fm.getHeight();
         g.drawString("Hello", 5, height);
    }
    Tu peut aussi te servir d'un objet Graphics2D qui possède plus de méthode.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Graphics2D g2d = (Graphics2D) g;
    Si tu veux Ecrire du texte, tu doit te servir de composants prévu pour cela :
    JTextField, JTextArea, JTextPane, qui sont tous des objets JTextComponent. Avec ses objets tu as des méthodes pour écrire (et pas dessiner, bien que le composant finira par le dessiner) du texte dans le composant.

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut
    Merci à tous les deux
    J'y vois tous de suite plus clair.

    JTextField, JTextArea, JTextPane me renvoi des champs.
    Pour l'instant je cherche pas à entrer des données, mais à écrire du texte.
    Je pensais utiliser JLabel, mais je ne sais pas comment faire un retour à la ligne pour du texte.
    En éccumant les forums, j'ai trouvé une solution:
    L'utilisation du html avec JLabel lab=new JLabel("<html><i>cou<br><u>cou</u></i></html>");

    Je pensais pas pouvoir faire appel à des balises html pour écrire du texte
    Y a t'il d'autres méthode plus rigoureuses?

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Par défaut
    Le html est surtout là pour te donner une présentation rapide que tu ne pourrais pas obtenir ou en te faisant fichier. Par exemple il est peut-être plus simple de mettre le texte en gras dans un label avec du html que de définir une fonte en caractère gras. Un autre cas typique est de mettre un mot en couleur dans une phrase en noir par exemple. Dans un JLabel seul le html te le permet. Mais il ne faut pas en abuser. Quand tu peur faire autrement , c'est mieux.

    Les JLabel ne permette pas le retour à la ligne, c'est pas fait pour. Si tu veux juste deux phrases avec un retour à la ligne alors oui. Mais si tu as un texte entier, il vaut mieux utiliser un JTextArea par exemple. Tu peut le rendre non éditable, c'est à dire que tu ne peut écrire dedans sauf par code évidement.

    Je t'invite à regarder les tutos Swing de sun : tuto sur les composants

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    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 900
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par visiwi Voir le message
    Les JLabel ne permette pas le retour à la ligne, c'est pas fait pour.
    Sauf si utilisation du HTML bien sur.
    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

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Par défaut
    Salut,

    Pour passer à la ligne suivante, on peut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String nl = "\n";
    String texte = "Tata, titi, toto" + nl;
    // ou directement texte = "Tata, titi, toto \n";
    Mais il vaut mieux s'habituer à utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static String nl = System.getProperty("line.separator");
    pour des raisons de portabilité.

    Cordialement.

    Dan

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    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 900
    Billets dans le blog
    54
    Par défaut
    Et une reponse a cote de la plaque, une !
    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

  9. #9
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Par défaut
    Merci à tous d'avoir répondu,

    Si j'ai bien compris JTextArea permettrait d'obtenir un cadre non éditable.
    Je vais regarder ton lien visiwi sur les composants.

    Je met en résolu
    Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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