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 LineJLabel
会显示在两行上。
如果您想要一个可以自行拆分线的组件,请查看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一样快。
希望它会有所帮助。