基本上,我有一个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仍在的字符串!帮助
如果要在JTextPane中显示Html
内容,则必须设置为JTextPane#setContentType("text.html");,示例
编辑:
对于JEditorPanes / JTextPanes
,有没有另一种方法可以实现StyledDocument、MutableAttributeSet和自定义的Highlighter,例如
a.m.方式不使用Html syntax
使用setContentType方法让Java知道它将是HTML。
k.setContentType("text/html");
我使用外观(Substance),调用setContentType("text/html")
时显示的字体有问题。我打电话给解决了这个问题
textPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
另一种选择是将HTML文本包装在JLabel
中。按照你的例子,代码是:
JTextPane k = new JTextPane();
k.insertComponent(new JLabel("<html><strong>Hey!</strong></html>"));