HTML을 표시하기 위해 스크롤 가능한 JTextPane을 만들려고합니다. 나는 크기를 올바르게하려고 노력하는 것을 제외하고는 그것을 가지고있다. 내가하는 일과 상관없이 나는 창 너비에 영향을 줄 수 없다.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 만도 효과 폭에에는 setSize 시도했습니다. 그것은 지정된 크기 내에서 HTML을 포장하기보다는 가장 긴 < p> 태그의 폭으로 너비를 설정하고자하는 것 같습니다. 내가 찾지 못하는 것은 JOptionPane의 크기를 설정하는 방법이지만 구성 요소의 크기가 올바르다면 필요하지 않아야한다는 것이 이해됩니다. 누군가 내가 누락 된 것을 말해 줄 수 있습니까? TIA.
당신이 보여줄 수 귀하의
JTextPane
대신에setPreferredSize
를 사용하려면? 아마도 레이아웃 관리자의 문제 일 것입니다. – SharcouxJScrollPane이 마지막 줄에 추가되었습니다. JOptionPane 스테이트먼트입니다. –
오, 죄송합니다. 좋아, 문제는 JOptionPane이 pack()을 호출하고 pack()이 크기를 신경 쓰지 않는다는 것이다. preferredSize 만 고려합니다. 내가 대답 할게. – Sharcoux