在 JTextArea 或 JTextPane 中设置文本样式

2022-09-03 18:10:33

基本上,我有一个JTextPane来保存一些我希望设置样式的文本。JTextArea对我来说会更好,但我被告知你不能在这些中设置文本的样式?

但是,JTextPane的样式似乎不正确。例如,以下代码仅返回,其中包含 HTML:

public static void main(String[] args) {
    JFrame j = new JFrame("Hello!");
    j.setSize(200,200);
    JTextPane k = new JTextPane();
    k.setText("<html><strong>Hey!</strong></html>");
    j.add(k);
    j.setVisible(true);
}

我希望当用户与界面交互时,能够在JTextPane中设置一些文本的样式,但到目前为止,它只是返回仍然在HTML中的字符串!帮助!


答案 1

如果你想在JTextPane中播放内容,那么你必须为JTextPane#setContentType(“text/html”)设置,这里的例子Html

编辑:

因为是否有另一种方式通过实现StyledDocumentMutableAttributeSet和自定义的Highler,示例在这里JEditorPanes / JTextPanes

a.m. 方式是不使用Html syntax


答案 2

让Java知道它将是使用setContentType方法的HTML。

k.setContentType("text/html");