基本上,我有一个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仍在的字符串!救命啊!
答案 0 :(得分:21)
如果您想在JTextPane中填充Html
内容,则必须设置为JTextPane#setContentType("text/html");,例如here
编辑:
JEditorPanes / JTextPanes
是实现StyledDocument,MutableAttributeSet和自定义Highlighte r的另一种方式,例如here
A.M。方式是没有使用Html syntax
答案 1 :(得分:6)
让Java知道它将是使用setContentType方法的HTML。
k.setContentType("text/html");
答案 2 :(得分:3)
我使用外观(物质)并且调用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>"));