JLabel multilignes sans HTML [Résolu]

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
- - Dernière réponse : cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
- 30 août 2011 à 09:38
Bonjour tout le monde,

j'ai un petit souci dans le développement de mon applet Java. En effet je recherche à insérer des sauts de ligne dans le texte d'un JLabel sans utiliser la syntaxe HTML.

Ce JLabel peut contenir du texte informatif, mais surtout de la donnée au format xml SANS TRANSFORMATION (c'est une contrainte importante de mon cahier des charges), ce qui m'empêche l'utilisation de l'encodage HTML pour le contenu (alors obligé de remplacer les '<' et '>' par '<' et '$gt;')

Existe-t-il une vraie méthode pour les sauts de ligne dans les JLabel ?
Je trouve bizarre que seul le format HTML le permette, et que les \r(\n) ne soient pas pris en charge.

Merci d'avance
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
3
Merci
Bonjour,

Le JLabel n'est pas prévu pour être utilisé avec des sauts de ligne, l'insertion des balises html le permet mais ce n'est pas génial non plus.

Pour t'en sortir, tu peux utiliser une JTextArea sur laquelle tu définis setEditable(false); et là tu pourras faire ce que tu veux.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
1
Merci
Le JLabelArea c'est uniquement un JTextArea qui n'est pas editable et non opaque :

JTextArea labelArea = new JTextArea("Ton texte\nTon texte");
labelArea.setEditable(false);
labelArea.setOpaque(false);


Tu n'as même pas besoin d'héritage...
Commenter la réponse de cs_Julien39
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
Salut et merci pour cette réponse rapide :)

J'utilisais effectivement un JTextArea (+ un JScrollPane soit dit en passant) disablé en attendant d'avoir des précisions sur le JLabel.
Je trouve quand même étonnant de ne pas avoir prévu la gestion du multiligne pour le JLabel. Enfin bon, comme je le dis souvent "j'aime pas Java, et il me le rend bien" ^^

Encore merci Julien39

PS : réponse acceptée
Commenter la réponse de cs_jopop
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
0
Merci
Non, ce n'est pas si étonnant que ca, le JLabel a été pensé comme le JTextField : un composant simple, qui sur une seule ligne permet d'afficher un texte.

Ce composant n'est pas voué à afficher un grand nombre d'informations, il est pensé pour être utilisé avec les JTextField pour des formulaires qui permettent d'entrer des informations, comme par exemple un formulaire d'inscription :

<JLabel>      <JTextField>
Nom :          ___________
Prenom :       ___________
Mot de passe : ___________


Et après pour les choses plus compliqués, tu as toute une palette de composants plus élaborés comme la JTextArea.

Bon courage pour la suite.
a9
Commenter la réponse de cs_Julien39
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
Je sépare 2 grands types de contrôles : saisie/visu

Pour le premier on a 2 contrôles, un simple (JTextField) et un multilignes (JTextArea).
Pour le second on en a qu'un, qui ne gère que le simple (JLabel).

Alors oui, pour moi y'a un manquement. Soit on a un "JLabelArea", soit le JLabel normal doit pouvoir gérer le multiligne. Là on se retrouve à bidouiller un contrôle de saisie (disabler, changer couleur de fond ...) pour avoir un comportement de contrôle de présentation.

Bon, c'est du chipotage, j'en conviens ^^
Commenter la réponse de cs_jopop
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
0
Merci
Salut...

Les composants sont la.. ils conviennent.. pourquoi en faire d autre?? tu peux meme ecrire directement dans un panel et rien ne t empeche de faire ton JLabelArea si tu en éprouve le besoin ;o) ... en héritage simple de JTextField avec quelques attribut posisionné ;o) ... Le java c'est LE language par excelence pour les ihm de gestion ;o) ... et bien d autre ;o)

GodConan ;o)
Commenter la réponse de cs_GodConan
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Dernière intervention
1 août 2013
0
Merci
Ah, mais perso j'ai un seul projet en Java, et j'espère que ce sera le dernier ^^

Et bien sûr que je peux recoder un contrôle comme il me chante, mais un truc aussi basique devrait déjà être dispo à mon sens. Tout est très rapidement lourd avec ce langage, j'ai hâte de m'en défaire (désolé les Java-Fan).
Commenter la réponse de cs_jopop

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.