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?![]()
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?![]()
Bonjour,
Pourquoi pas JTextArea ?
Tu "formates" ton texte que tu envois dans la JTextArea:
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part textarea.append(texte);
Dan
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 :
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
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); }
Si tu veux Ecrire du texte, tu doit te servir de composants prévu pour cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Graphics2D g2d = (Graphics2D) g;
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.
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?![]()
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
Merci de penser au tagquand 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
Salut,
Pour passer à la ligne suivante, on peut utiliser :
Mais il vaut mieux s'habituer à 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";
pour des raisons de portabilité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part public static String nl = System.getProperty("line.separator");
Cordialement.
Dan
Et une reponse a cote de la plaque, une !
Merci de penser au tagquand 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
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![]()
Partager