Comment est la parole de l'emballage-mise en œuvre dans JTextPane, et comment puis-je faire envelopper d'une chaîne de caractères sans espaces?

Comment exactement est la parole de l'emballage-mise en œuvre dans JTextPane?

J'essaie de comprendre exactement comment il fonctionne afin que je puisse modifier le comportement. Maintenant, si j'ai une JTextPane à l'intérieur d'un JScrollPane, il va se casser texte à des espaces, mais pas à l'intérieur des mots longs - si il ya une chaîne de texte sans espaces qui est plus large que la fenêtre, il ne sera pas envelopper/pause et une barre de défilement horizontale apparaît. Comme le texte de la largeur augmente, la largeur de la ParagraphView (via getWidth()) augmente de tenir le texte.

Cet article par Lapitsky dit que LabelView.getBreakWeight() retourne la Vue.ExcellentBreakWeight pour les étiquettes avec des espaces et de la Vue.GoodBreakWeight pour les étiquettes sans les espaces (et le code de la GlyphView.java semble le confirmer), donc pourquoi ne pas briser? C'est en quelque sorte le retour BadBreakWeight au lieu de GoodBreakWeight? Ou est-il un problème de mise en page? Ou est-il un bug?

Voici un peu de code (pour votre plus grand plaisir):

//somewhere inside JPanel or JFrame constructor
JTextPane textPane = new JTextPane();
JScrollPane scrollPane = new JScrollPane(textPane);
add(scrollPane);

Noter qu'il n'est toujours pas de retour si je prends le défilement du volet et il suffit d'utiliser le volet de texte (il est juste clipsé qu'elle va à l'extérieur de la fenêtre).


La javadoc pour le Swing ne semblent pas assez en détail sur le fonctionnement de certains objets (comme JTextPane, de la Vue, et des objets liés) de travailler ensemble. Est-il encore de la documentation de la conception de ces classes, peut-être en détaillant l'objet de chaque classe et la façon dont ils travaillent tous ensemble? Est-il tout simplement pas accessible au public? (Ou suis-je le seul à avoir des ennuis avec ce genre de choses? Ou est le manque de documentation limitée à des choses qui ne sont pas devraient être traitées par un typique développeur?)

OriginalL'auteur A Coder | 2011-08-12