JLabel multilignes sans HTML [Résolu]

cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 29 août 2011 à 13:28 - Dernière réponse : cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention
- 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 

7 réponses

Répondre au sujet
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 29 août 2011 à 14:01
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Julien39
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 30 août 2011 à 09:38
+1
Utile
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
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 29 août 2011 à 14:08
0
Utile
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
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 29 août 2011 à 14:46
0
Utile
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
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 29 août 2011 à 17:52
0
Utile
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
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 29 août 2011 à 22:59
0
Utile
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
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 30 août 2011 à 09:34
0
Utile
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.