HTML 的 JtextPane 太宽
JtextPane with HTML is too wide
我正在尝试创建一个可滚动的 JTextPane 来显示 HTML。我有它的工作,但试图获得正确的尺寸。看来无论我做什么,我都无法影响窗格的宽度。
JTextPane tp=new JTextPane();
tp.setSize(300,300);
tp.setContentType("text/html");
HTMLDocument html=(HTMLDocument) tp.getDocument();
html.putProperty("IgnoreCharsetDirective", new Boolean(true));
HTMLEditorKit htmle=(HTMLEditorKit) tp.getEditorKit();
try {
htmle.insertHTML(html,html.getLength(),content,0,0,null);
} catch (BadLocationException | IOException e) {
// Should not get here
e.printStackTrace();
}
JScrollPane scroll=new JScrollPane(tp,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scroll.setSize(200,300);
JOptionPane.showMessageDialog(null,scroll,title,JOptionPane.INFORMATION_MESSAGE);
我已经尝试在 JTextPane 和 JScrollPane 上设置大小,但都不影响宽度。它似乎想将宽度设置为最长的 < p > 标记的宽度,而不是将 HTML 包装在指定的大小内。我似乎无法找到一种设置 JOptionPane 大小的方法,但我的理解是,如果组件大小正确,则不需要。有人能告诉我我错过了什么吗? TIA.
JOptionPane
呼叫 pack()
。 pack()
使用其子项的 preferredSize
来决定其宽度和高度。默认情况下,JTextPane
的首选宽度是最长行的宽度。如果你想改变这种行为,
- 或者覆盖
JTextPane
的getPreferredSize
方法
- 或者在
JTextPane
上使用 setPreferredSize
而不是 setSize
我正在尝试创建一个可滚动的 JTextPane 来显示 HTML。我有它的工作,但试图获得正确的尺寸。看来无论我做什么,我都无法影响窗格的宽度。
JTextPane tp=new JTextPane();
tp.setSize(300,300);
tp.setContentType("text/html");
HTMLDocument html=(HTMLDocument) tp.getDocument();
html.putProperty("IgnoreCharsetDirective", new Boolean(true));
HTMLEditorKit htmle=(HTMLEditorKit) tp.getEditorKit();
try {
htmle.insertHTML(html,html.getLength(),content,0,0,null);
} catch (BadLocationException | IOException e) {
// Should not get here
e.printStackTrace();
}
JScrollPane scroll=new JScrollPane(tp,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scroll.setSize(200,300);
JOptionPane.showMessageDialog(null,scroll,title,JOptionPane.INFORMATION_MESSAGE);
我已经尝试在 JTextPane 和 JScrollPane 上设置大小,但都不影响宽度。它似乎想将宽度设置为最长的 < p > 标记的宽度,而不是将 HTML 包装在指定的大小内。我似乎无法找到一种设置 JOptionPane 大小的方法,但我的理解是,如果组件大小正确,则不需要。有人能告诉我我错过了什么吗? TIA.
JOptionPane
呼叫 pack()
。 pack()
使用其子项的 preferredSize
来决定其宽度和高度。默认情况下,JTextPane
的首选宽度是最长行的宽度。如果你想改变这种行为,
- 或者覆盖
JTextPane
的 - 或者在
JTextPane
上使用setPreferredSize
而不是setSize
getPreferredSize
方法