Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
862 connectés 

  FORUM HardWare.fr
  Programmation

  [Swing] Texte multiligne dans un JLabel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Swing] Texte multiligne dans un JLabel

n°99402
R3g
fonctionnaire certifié ITIL
Posté le 12-02-2002 à 13:47:28  profilanswer
 

Je voudrais utiliser un JLabel pour afficher des infos qui tiennent sur 10 lignes. Le problème, c'est que si j'écris un '\n' dans le JLabel, il me marque un vieux carre à la place. J'ai essaye avec la propriete systeme "line.separator" : pareil. En fait, la seule solution que j'ai trouve, c'est d'utiliser des balises html

Code :
  1. <li>

, mais je trouve ca un peu "bidouille". Est-ce que qqun sait coment faire ?


---------------
Au royaume des sourds, les borgnes sont sourds.
mood
Publicité
Posté le 12-02-2002 à 13:47:28  profilanswer
 

n°99405
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 12-02-2002 à 13:48:35  profilanswer
 

bin la sémantique du JLabel c'est d'être un label simple sur une ligne, c'est pour ca que tu n'arrives pas à faire mieux ;)
 
Tu veux les afficher où (dans quoi) ces infos?


---------------
What is popular is not always right, what is right is not always popular :D
n°99407
gfive
Posté le 12-02-2002 à 13:51:32  profilanswer
 

ben tu te crées une classe MultiLineLabel....Qui affiche plusieurs JLabel dans un JPanel, en créant des labels qui contiennent le texte entre chaque \n...
C tout con!! :D
 
Ca donnerai qqchose du genre :
 
public class MultiLineLabel extends JPanel {
 
public MutliLineLabel(String text) {
      super(new BoxLayout());
      StringTokenizer st = new StringTokenizer(text, "\n" );
      while(st.hasMoreTokens()) {
            add(new JLabel(st.nextToken()));
      }
}
 
}
 
 
Bon, je sais pas si ça marche, je l'ai pas testé, mais normalement, y'a pas de raison.

n°99408
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 12-02-2002 à 13:52:22  profilanswer
 

joli gfive. Connaissait pas !
 
merchi ;)

 

[jfdsdjhfuetppo]--Message édité par darklord22--[/jfdsdjhfuetppo]


---------------
What is popular is not always right, what is right is not always popular :D
n°99409
R3g
fonctionnaire certifié ITIL
Posté le 12-02-2002 à 13:53:37  profilanswer
 

Ben en fait ces infos sont des stats sur le derpoulement du programme (temps ecoule, temps restant, etc...) et je voulais les afficher dans un JLabel avec un belle bordure, dans un JPanel.
Je me doutais que le JLabel etait pas fait pour du multiligne (encore qu'il est utilisé comme ca dans les exemples du tutorial Java), mais je voudrais une zone de texte non éditable et qui ai la meme couleur que le JPanel, et le JLabel semblait la solution la plus simple.

 

[jfdsdjhfuetppo]--Message édité par R3g--[/jfdsdjhfuetppo]


---------------
Au royaume des sourds, les borgnes sont sourds.
n°99410
R3g
fonctionnaire certifié ITIL
Posté le 12-02-2002 à 13:54:56  profilanswer
 

Exact gfive, pas mal du tout. Merci.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°99412
gfive
Posté le 12-02-2002 à 13:56:43  profilanswer
 

Tu le veux en AWT, aussi??? :D:D

n°99413
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 12-02-2002 à 13:57:18  profilanswer
 

gfive a écrit a écrit :

Tu le veux en AWT, aussi??? :D:D  




 
frimeur ;)
 
 :hello:


---------------
What is popular is not always right, what is right is not always popular :D
n°1845293
Chklang
Posté le 30-01-2009 à 16:48:52  profilanswer
 

Même mieux.... Le but d'un texte multiligne est de modifier la mise en forme de chaque ligne en fonction de la taille de la fenetre.
Donc là, le mieux serais de découper chaque \n par un nouveau FlowLayout, et chaque espace par un JLabel. Ainsi les mots reviendront à la ligne correctement...
 
ps : Je répond à un sujet vieux de 7ans car il apparait dans les premiers de GOOGLE, et d'autres risquent donc de tomber dessus...


Message édité par Chklang le 30-01-2009 à 16:49:48
n°1845370
Chklang
Posté le 30-01-2009 à 20:41:08  profilanswer
 

Encore mieux : Si tu met <html></html> avec ton texte dedans, cela interprete ton texte comme du code html. Donc voici une petite classe bien sympatique :
 

Code :
  1. import javax.swing.JLabel;
  2. public class MultiLigne extends JLabel {
  3.     public MultiLigne(String texte) {
  4.      //Doit remplacer les caractères speciaux...
  5.      //Donc commence par le "&", puis s'occupe des balises, et enfin ajoute les sauts de ligne...
  6.      super ("<html>" + texte.replaceAll("&", "&amp;" ).replaceAll("<", "&lt;" ).replaceAll(">", "&gt;" ).replaceAll("\n", "<br />" ) + "</html>" );
  7.     }
  8. }


Message édité par Chklang le 30-01-2009 à 20:41:45
mood
Publicité
Posté le 30-01-2009 à 20:41:08  profilanswer
 

n°2169359
cableur
Le Bidouilleur le moins gradé
Posté le 29-12-2012 à 23:19:29  profilanswer
 

R3g a écrit :

Je voudrais utiliser un JLabel pour afficher des infos qui tiennent sur 10 lignes. Le problème, c'est que si j'écris un '\n' dans le JLabel, il me marque un vieux carre à la place. J'ai essaye avec la propriete systeme "line.separator" : pareil. En fait, la seule solution que j'ai trouve, c'est d'utiliser des balises html

Code :
  1. <li>

, mais je trouve ca un peu "bidouille". Est-ce que qqun sait coment faire ?


 
La solution simple
                panneau_publicitaire = new JTextPane();
  panneau_publicitaire.setOpaque(false);  // transparence
                panneau_publicitaire.setFocusable(false); // pas plus de sélection possible
  panneau_publicitaire.setFont(new Font("Tahoma", Font.BOLD, 11));
  panneau_publicitaire.setText("Ce panneau ressemble à un jLabel tout fait mais prend plusieurs lignes " );
  // autres


---------------
L'ouvrage semble facile quand le travail est un plaisir

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Swing] Texte multiligne dans un JLabel

 

Sujets relatifs
[HTML] comment on centre du texte verticalemenrt ds un tableau ?[JAVA] swing / applet / ie : comment faire ?
[Javascript] : modifier un texteConversation d'un texte pour integration dans une base oracle via ASP
Démineur en java avec swing[C/C++] Extraire les lignes d'un fichier texte
[Flash5] Insérer une variable dans du texte[javascript] texte en surbrillance
[HTML] Ecrire du texte dans la partie texte dun input type=file ?Je cherche un texte en xml
Plus de sujets relatifs à : [Swing] Texte multiligne dans un JLabel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR