Retour à la ligne JTextArea
Résolu/Fermé
ventresh
-
29 août 2008 à 18:26
ventresh Messages postés 5 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 1 septembre 2008 - 1 sept. 2008 à 11:05
ventresh Messages postés 5 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 1 septembre 2008 - 1 sept. 2008 à 11:05
A voir également:
- Retour à la ligne JTextArea
- Aller à la ligne excel - Guide
- Chaque fichier en ligne sur le web a un chemin d’accès sur un serveur. c’est le cas du fichier du logo présent sur la page de cette ville. quel est le chemin de ce fichier à partir de la racine du site ? - Forum Graphisme
- Notepad++ retour à la ligne ✓ - Forum Bureautique
- Ligne occupée - Forum SFR
- Retour à la ligne google sheet - Forum Excel
5 réponses
ventresh
Messages postés
5
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
1 septembre 2008
1
1 sept. 2008 à 11:05
1 sept. 2008 à 11:05
Bon j'ai trouvé la réponse à mon problème, soufflée par une remarque sur un autre forum signalant que sur Windows, un retour à la ligne devait être codé par un \r\n plutôt qu'un \r tout seul.
est le code ASCII de \r. Il n'est pas interprété par l'interface Swing sur Windows. J'ai donc modifié mon code dans ma méthode load de telle manière à remplacer tous les \r par des \n et ça marche.
Voilà donc la solution au problème :
...
}else{
//Pour tout autre type, on affiche la représentation textuelle de la donnée
field.setText(data.toString().replaceAll("\r", "\n"));
}
est le code ASCII de \r. Il n'est pas interprété par l'interface Swing sur Windows. J'ai donc modifié mon code dans ma méthode load de telle manière à remplacer tous les \r par des \n et ça marche.
Voilà donc la solution au problème :
...
}else{
//Pour tout autre type, on affiche la représentation textuelle de la donnée
field.setText(data.toString().replaceAll("\r", "\n"));
}
Merci pour ta remarque, j'ai donc essayé mais sans effet. Pire, voilà le code que j'ai corrigé pour tester :
...
else{
//Pour tout autre type, on affiche la représentation textuelle de la donnée
field.setText(data.toString());
if(field instanceof JTextArea){
((JTextArea) field).setLineWrap(true);
((JTextArea) field).setWrapStyleWord(true);
System.out.println(field.getText());
}
}
Résultat : à l'affichage sur l'UI, toujours pas de retours à la ligne mais en revanche, dans la console, je demande à afficher le contenu du JTextArea fraîchement mis à jour et là surprise : j'ai bien des retours à la ligne.
Donc le texte du JTextArea a bien des retours à la ligne mais c'est son affichage qui ne les prend pas en compte.
Sachant que j'ai sur le champ un écouteur sur le focus qui charge le texte en provenance de l'objet métier lorsque le focus est donné au JTextArea et qui récupère le texte saisi dans le JTextArea vers l'objet métier lorsque le focus est perdu.
Du coup, lorsque je charge le texte dans le JTextArea, les retours à la ligne semblent perdus. Je les retape et sort du JTextArea, ils sont bien pris en compte. Si je reprends le focus, ils sont bien apparents dans l'affichage ce qui veut dire que les retours à la ligne provenant de ma saisie dans le JTextArea sont correctement interprétés.
mais chose intéressante, lorsque je consulte le texte affiché dans la console grâce au System.out.println, mes lignes sont séparés dorénavant d'un double retour : l'initial + celui ajouté par saisie dans le JTextArea alors que dans le JTextArea, seul le dernier retour à la ligne est affiché !!!
...
else{
//Pour tout autre type, on affiche la représentation textuelle de la donnée
field.setText(data.toString());
if(field instanceof JTextArea){
((JTextArea) field).setLineWrap(true);
((JTextArea) field).setWrapStyleWord(true);
System.out.println(field.getText());
}
}
Résultat : à l'affichage sur l'UI, toujours pas de retours à la ligne mais en revanche, dans la console, je demande à afficher le contenu du JTextArea fraîchement mis à jour et là surprise : j'ai bien des retours à la ligne.
Donc le texte du JTextArea a bien des retours à la ligne mais c'est son affichage qui ne les prend pas en compte.
Sachant que j'ai sur le champ un écouteur sur le focus qui charge le texte en provenance de l'objet métier lorsque le focus est donné au JTextArea et qui récupère le texte saisi dans le JTextArea vers l'objet métier lorsque le focus est perdu.
Du coup, lorsque je charge le texte dans le JTextArea, les retours à la ligne semblent perdus. Je les retape et sort du JTextArea, ils sont bien pris en compte. Si je reprends le focus, ils sont bien apparents dans l'affichage ce qui veut dire que les retours à la ligne provenant de ma saisie dans le JTextArea sont correctement interprétés.
mais chose intéressante, lorsque je consulte le texte affiché dans la console grâce au System.out.println, mes lignes sont séparés dorénavant d'un double retour : l'initial + celui ajouté par saisie dans le JTextArea alors que dans le JTextArea, seul le dernier retour à la ligne est affiché !!!
ventresh
Messages postés
5
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
1 septembre 2008
1
1 sept. 2008 à 09:49
1 sept. 2008 à 09:49
Voilà le texte obtenu par la méthode field.getText() tel qu'il s'affiche dans la console :
- Poursuivre une communication de proximité, qui va au contact des habitants (journaux, affiches, journées portes ouvertes, manifestations festives), où l'image et la rencontre sont privilégiées.
- la pluralité des instances de concertation Echirolloise (lieux de proximités-Maison des habitants, Maison de la solidarité et des initiatives citoyennes, groupes de travail thématiques, comités de quartiers, assises de la ville), nous amène aujourd'hui à développer un nouveau support de communication « Cité Citoyens », dont le référentiel « faire ensemble » restituera les pratiques utilisées en présence des trois partenaires de la participation « habitants, élus, techniciens ».
- développer des ateliers multimédia, afin de toucher le public jeune aujourd'hui absent de nos concertation. Hermétique à nos supports de communication traditionnel (bulletin municipal, presse locale), les jeunes sont déjà pratiquement tous connectés à Internet et n'ont aucune difficulté face à l'ordinateur.
- pour répondre à la forte demande d'information sur le développement durable, et pour toucher un public non initiés, différentes formes d'information seront déclinées (expositions pédagogiques, des visites de sites exemplaires, des conférences débats, des films) afin de sensibiliser les habitants pour que chacun se sente concerné et impliqué dans la démarche agenda 21.
Voilà la copie d'écran du texte tel qu'il s'affiche sur l'UI :
http://www.novasubv.fr/img/jTextArea.png
- Poursuivre une communication de proximité, qui va au contact des habitants (journaux, affiches, journées portes ouvertes, manifestations festives), où l'image et la rencontre sont privilégiées.
- la pluralité des instances de concertation Echirolloise (lieux de proximités-Maison des habitants, Maison de la solidarité et des initiatives citoyennes, groupes de travail thématiques, comités de quartiers, assises de la ville), nous amène aujourd'hui à développer un nouveau support de communication « Cité Citoyens », dont le référentiel « faire ensemble » restituera les pratiques utilisées en présence des trois partenaires de la participation « habitants, élus, techniciens ».
- développer des ateliers multimédia, afin de toucher le public jeune aujourd'hui absent de nos concertation. Hermétique à nos supports de communication traditionnel (bulletin municipal, presse locale), les jeunes sont déjà pratiquement tous connectés à Internet et n'ont aucune difficulté face à l'ordinateur.
- pour répondre à la forte demande d'information sur le développement durable, et pour toucher un public non initiés, différentes formes d'information seront déclinées (expositions pédagogiques, des visites de sites exemplaires, des conférences débats, des films) afin de sensibiliser les habitants pour que chacun se sente concerné et impliqué dans la démarche agenda 21.
Voilà la copie d'écran du texte tel qu'il s'affiche sur l'UI :
http://www.novasubv.fr/img/jTextArea.png
ventresh
Messages postés
5
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
1 septembre 2008
1
1 sept. 2008 à 09:54
1 sept. 2008 à 09:54
Et voilà le texte tel que je le récupère dans le flux XML retourné par le serveur d'application en charge d'interroger la BD (retours à la ligne codés
- j'ai remplacé le # par un $ pour pas qu'il soit interprété sur le forum) :
<contenu>- Poursuivre une communication de proximité, qui va au contact des habitants (journaux, affiches, journées portes ouvertes, manifestations festives), où l'image et la rencontre sont privilégiées. &$13;&$13;- la pluralité des instances de concertation Echirolloise (lieux de proximités-Maison des habitants, Maison de la solidarité et des initiatives citoyennes, groupes de travail thématiques, comités de quartiers, assises de la ville), nous amène aujourd'hui à développer un nouveau support de communication « Cité Citoyens », dont le référentiel « faire ensemble » restituera les pratiques utilisées en présence des trois partenaires de la participation « habitants, élus, techniciens ».&$13;&$13;- développer des ateliers multimédia, afin de toucher le public jeune aujourd'hui absent de nos concertation. Hermétique à nos supports de communication traditionnel (bulletin municipal, presse locale), les jeunes sont déjà pratiquement tous connectés à Internet et n'ont aucune difficulté face à l'ordinateur. &$13;&$13;- pour répondre à la forte demande d'information sur le développement durable, et pour toucher un public non initiés, différentes formes d'information seront déclinées (expositions pédagogiques, des visites de sites exemplaires, des conférences débats, des films) afin de sensibiliser les habitants pour que chacun se sente concerné et impliqué dans la démarche agenda 21.&$13;&$13;</contenu>
<contenu>- Poursuivre une communication de proximité, qui va au contact des habitants (journaux, affiches, journées portes ouvertes, manifestations festives), où l'image et la rencontre sont privilégiées. &$13;&$13;- la pluralité des instances de concertation Echirolloise (lieux de proximités-Maison des habitants, Maison de la solidarité et des initiatives citoyennes, groupes de travail thématiques, comités de quartiers, assises de la ville), nous amène aujourd'hui à développer un nouveau support de communication « Cité Citoyens », dont le référentiel « faire ensemble » restituera les pratiques utilisées en présence des trois partenaires de la participation « habitants, élus, techniciens ».&$13;&$13;- développer des ateliers multimédia, afin de toucher le public jeune aujourd'hui absent de nos concertation. Hermétique à nos supports de communication traditionnel (bulletin municipal, presse locale), les jeunes sont déjà pratiquement tous connectés à Internet et n'ont aucune difficulté face à l'ordinateur. &$13;&$13;- pour répondre à la forte demande d'information sur le développement durable, et pour toucher un public non initiés, différentes formes d'information seront déclinées (expositions pédagogiques, des visites de sites exemplaires, des conférences débats, des films) afin de sensibiliser les habitants pour que chacun se sente concerné et impliqué dans la démarche agenda 21.&$13;&$13;</contenu>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
29 août 2008 à 19:59
29 août 2008 à 19:59
Bonsoir,
As -tu essayé de mettre un setLineWrap(true) juste après ton field.setText()?
As -tu essayé de mettre un setLineWrap(true) juste après ton field.setText()?