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

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

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

在此处输入图像描述

我做了什么

我使用了像这样的JTextPane:

  JTextPane text = new JTextPane(); SimpleAttributeSet attr = new SimpleAttributeSet(); StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER); pane.add(text, c); 

然后我添加了我的文字,但无论如何,谢谢!

JLabel默认不能这样做。 但是JLabel对html有一些支持,所以带有文本First Line
Second Line
JLabel会显示在两行上。

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

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

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

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

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

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

希望它会有所帮助。