java - 用于 Swing 的回流标签小部件

标签 java swing formatting label widget

是否有一个 Swing 小部件的行为类似于 JLabel,如果文本的尺寸发生变化,它会自动重排文本?例如:

Large horizontal space available:
+--------------+
| Foo bar baz  |
+--------------+

Small horizontal space available:
+---------+
| Foo bar |
| baz     |
+---------+

我目前正在将 JEditorPanesetContentType("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/

相关文章:

java - storm 0.9.0.1 与 Netty 的 supervisor 通信

java - 在 java swing 组件上绘制边框

java - 使用paintComponent()和高CPU使用率

java - 用按钮链接 2 个 jForms - java

java - 不区分大小写的字符串替换符

c - printf 中至少保留一位小数的 double 格式

java - 如何从 GWT DataGrid 中的列标题中删除文本阴影?

2011年的Java : threaded sockets VS NIO: what to choose on 64bit OS and latest Java version?

java - 重新缩放 JFrame 内容

c++ - 仅使用标准 C++ 将任何 float 打印到恰好 N 个空格