是否有一个 Swing 小部件的行为类似于 JLabel
,如果文本的尺寸发生变化,它会自动重排文本?例如:
Large horizontal space available: +--------------+ | Foo bar baz | +--------------+ Small horizontal space available: +---------+ | Foo bar | | baz | +---------+
我目前正在将 JEditorPane
与 setContentType("text/html")
和 HTML 内容一起使用。这有效,但它不使用系统的默认标签字体来显示文本。此外,我宁愿不将 HTML 标记放入我的文本中 - 充其量,\n
字符将被转换为换行符,而其他所有内容都将显示为文本。
最佳答案
您可以使用 JTextArea
,一个多行纯文本小部件。
Java文档:http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTextArea.html
JTextArea ta = new JTextArea("A JTextArea containing a long text");
ta.setLineWrap(true);
ta.setWrapStyleWord(true);
ta.setOpaque(false);
ta.setEditable(false);
ta.setFocusable(false);
setLineWrap(true)
启用换行setWrapStyleWord(true)
将换行从字符换行更改为基于单词setOpaque(true)
使其不透明,就像普通标签一样setEditable(false)
隐藏插入符号并禁止用户更改文本setFocusable(false)
禁止用户选择文本
它看起来像一个普通的 JLabel,但只要宽度太小,它就会将文本换行。
关于java - 用于 Swing 的回流标签小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1920493/