Java JLabel,将文本分解为下一行?

时间:2012-02-15 03:27:31

标签: java swing text newline jlabel

我问了一个问题已经有一段时间了!

我正在用Java开发一个使用JLabels的应用程序。无论如何,正如您可能或可能无法从下面的图片中看到的那样,Category Test的文字被切断并最终说出Categor...。有没有什么办法可以在文本填满标签的宽度时“破坏”文字?这是图像:

enter image description here

我做了什么

我使用了像这样的JTextPane:

    JTextPane text = new JTextPane();
    SimpleAttributeSet attr = new SimpleAttributeSet();   

    StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER);  

    pane.add(text, c);

然后我添加了我的文字,但不管怎样,谢谢!

3 个答案:

答案 0 :(得分:10)

JLabel默认情况下无法执行此操作。但是JLabel对html有一些支持,因此带有文字JLabel的{​​{1}}会显示在两行上。

如果您想要一个可以自行拆分线条的组件,请查看JTextArea

答案 1 :(得分:2)

我记得,如果你想要textwrap,你需要使用JTextArea。 JLabel没有这样做。

答案 2 :(得分:1)

您可以在http://java.net/projects/jide-oss/的JIDE Common Layer开源项目中使用StyledLabel组件。

html JLabel方法的问题是它不会自动换行,比普通JLabel慢大约20到40倍。

JTextArea或JTextPane方法的问题是它有一个奇怪的大小问题,也慢了20倍。

StyledLabel扩展了JLabel。自动换行只是它添加的众多功能之一。而且性能和普通的JLabel一样快。

希望它会有所帮助。