【问题标题】:Is there any built-in way to print styled text in Java?是否有任何内置方法可以在 Java 中打印样式文本?
【发布时间】:2017-02-20 15:46:34
【问题描述】:

我所说的样式是指不同部分具有不同格式的文本,例如写字板。

【问题讨论】:

    标签: java swing text graphics richtext


    【解决方案1】:

    Swing 在渲染中支持 HTML 3.2。 所以一个简单的无样式标签的代码将是:

    JLabel lblUnstyled = new JLabel();
    lblUnstyled.setText("Normal unstyled text");
    

    如果你想为你的文本设置样式,你可以使用 HTML 3.2 标记来设置样式信息,例如:

    JLabel lblStyled = new JLabel();
    lblStyled.setText("<html><head></head><body>This is text with <i>something in italic</i>.</body></html>");
    

    【讨论】:

    • “Swing 在渲染中支持 HTML 3.2。” 它还支持基本的 CSS,如 here(用于正文宽度)。另见How to Use HTML in Swing Components。支持 HTML 渲染的 Swing 组件包括 JLabelJButton(有一些怪癖)、JEditorPaneJTextPane ..
    【解决方案2】:

    考虑查看允许显示不同类型内容的 JEditorPane。 http://docs.oracle.com/javase/7/docs/api/javax/swing/JEditorPane.html

    显然,您需要查看 Swing 教程

    【讨论】:

      【解决方案3】:

      我会使用JTextPane

      阅读 Text Component Features 上的 Swing 教程部分,了解更多信息和工作示例。

      【讨论】:

        【解决方案4】:

        试试https://github.com/legendmohe/StyleLabel,它是从jide-oss (http://www.jidesoft.com/javadoc/com/jidesoft/swing/StyledLabel.html)中提取出来的

        StyledLabel 是一个特殊的 JLabel,可以以不同的方式显示文本 样式。它是 JLabel 和 JTextPane 之间的一个组件。 JLabel 是 简单、快速但功能有限。例如,您不能使用 不同的颜色来绘制文本。你可能会说 JLabel 可以使用 HTML 标记以不同颜色显示文本。不过主要有两个 使用 StyledLabel 的原因。首先,StyledLabel 非常快并且 几乎和纯文本的 JLabel 一样快。 HTML JLabel 很慢。

        【讨论】:

          猜你喜欢
          • 2016-07-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多