Я пытаюсь создать прокручиваемую JTextPane для отображения HTML. У меня есть работа, за исключением попыток получить правильный размер. Кажется, что бы я ни делал, я не могу влиять на ширину панели.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);
Я попытался SetSize на JTextPane и JScrollPane, но ни эффектов ширина. Похоже, что он хочет установить ширину в длину самого длинного тега < p>, а не обернуть HTML в указанном размере. То, что я не могу найти, - это способ установить размер JOptionPane, но я понимаю, что это не обязательно, если компоненты правильно отсортированы. Может ли кто-нибудь сказать мне, что мне не хватает? ТИА.
Не могли бы вы показать, где вы добавить свой JScrollPane в? Вероятно, менеджер макета проблемы – Sharcoux
JScrollPane добавлен в последнюю строку. Оператор JOptionPane. –
О, извините. Хорошо, проблема в том, что JOptionPane вызывает pack(), а pack() не заботится о размере. Он учитывает только предпочтительный размер. Позвольте мне написать вам ответ. – Sharcoux