Tuesday, February 14, 2012

JTextPane wrap long words


For some reason JTextPane only warp text if there are spaces between words, consider the following example:




package textpane;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

public class TextPaneLongLine {

public static void main(String[] args) {

final JFrame frame = new JFrame("TextPane");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);

JTextPane textPane = new JTextPane();

JScrollPane scollPane = new JScrollPane(textPane);
scollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);


frame.add(scollPane);
frame.setVisible(true);
}
}



enter image description here



As you can see, if a long line without spaces is typed it will go of the view area. But if the line have spaces JTextPane will automatic split the line to fit the view area.



Replacing the JTextPane with JEditorPane will work as expected but then I can't use styles.



So is there any way to force JTextPane to split long lines preventing them to go of the view area?

No comments:

Post a Comment