我想創建一個可滾動的JTextPane來顯示HTML。除了試圖讓尺寸合適之外,我還在努力。看起來不管我做什麼,我都無法影響窗格的寬度。帶HTML的JtextPane太寬
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進行設置,但都不影響寬度。它似乎希望將寬度設置爲最長的標記的寬度,而不是將HTML包裝在指定的大小範圍內。我似乎無法找到的是一種設置JOptionPane大小的方法,但我的理解是,如果組件尺寸正確,則不應該有必要。有人能告訴我我錯過了什麼嗎? TIA。
你能告訴你哪裏添加JScrollPane中投入使用
setPreferredSize
?這可能是佈局管理器的問題 – SharcouxJScrollPane添加在最後一行。 JOptionPane語句。 –
哦,對不起。好的,問題是JOptionPane調用pack(),pack()不關心大小。它只考慮preferredSize。讓我給你寫一個答案。 – Sharcoux