2010-08-29 5 views
4

Le contextepermettant l'habillage de texte plus intelligent dans un JTextArea

À l'heure actuelle, j'ai une JTextArea qui a été créé comme ceci:

JTextArea descArea = new JTextArea(); 
descArea.setFont(style.getFont()); 
descArea.setLineWrap(true); 
descArea.setName("descArea"); 
descArea.setToolTipText(resourceMap.getString("descArea.toolTipText")); 
descArea.setText(model.getName()); 
JScrollPane descPane = new JScrollPane(descArea, 
      JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, 
      JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 

Lorsqu'un utilisateur tape quelque chose dans le champ, il ne fait envelopper (comme par descArea.setLineWrap(true)), mais fait un peu maladroitement en brisant des mots comme l'exemple suivant:

alt text

Les utilisateurs de notre logiciel attendent l'emballage d'être un peu plus intelligent et générer automatiquement quelque chose comme:

alt text

Avec l'idée générale étant que quand on tape le dernier « e » tout descend vers la deuxième ligne avec le point d'insertion au fur et à mesure de la frappe (d'une manière similaire à presque tous les autres éditeurs de texte).


La question

Ma première pensée avait été de mettre en œuvre ce type d'emballage manuellement à l'aide d'un écouteur de touche, mais je me demandais s'il y a une meilleure composante d'approche/différente qui pourrait obtenir cette fonctionnalité plus facilement?

Répondre

7

Il est déjà implémenté.

textArea.setWrapStyleWord(true); 
Questions connexes