Я использую Java JDK 1.6 и имею проблему с использованием JTextPane для отображения текста с моноширинным шрифтом. Как только я добавлю символ UTF8, высота строки в текстовой области будет уменьшена (для всего текста уже на панели, а также для всего текста, добавленного позже). Как я могу избежать этого? Я хотел бы иметь нормальную высоту линии.Java JTextPane меняет высоту строки при добавлении символа UTF8
Вот некоторые примеры кода:
class AttributedTextPane extends JTextPane
{
private DefaultStyledDocument defaultStyledDocument;
protected AttributedTextPane()
{
this.defaultStyledDocument = new DefaultStyledDocument();
this.setDocument(defaultStyledDocument);
this.setContentType("text/plain");
...
}
}
...
Эта панель интегрирована в JInternalFrame. Создание панели и установив нужный моноширинный шрифт:
Font font = new Font("DejaVu Sans Mono", Font.PLAIN, 11);
AttributedTextPane pane = new AttributedTextPane();
pane.setFont(font);
Чтобы отобразить нужный текст, я называю pane.setText (...); Как только я добавлю символ UTF8, высота строки изменится, см. Снимок экрана на http://i.imgur.com/Fq7XBJB.png. Есть ли способ избежать изменения высоты строки? Спасибо, Deejay
Спасибо вам помочь, но с использованием StyleConstants .setLineSpacing (...), похоже, не помогает. Я протестировал его, но ничего не изменил. Изменение другого параметра стиля (например, цвета, полужирный, курсив) отлично работает, но нет межстрочного интервала. – Deejay
Извините, вам нужно исправить мой последний комментарий. Кажется, было уже поздно, и поэтому я допустил некоторые ошибки. Использование StyleConstants.setLineSpacing (...) отлично работает, по крайней мере, если вы не пропустите установку новых атрибутов на панель: 'MutableAttributeSet jTextPaneSet = new SimpleAttributeSet (pane.getParagraphAttributes()); StyleConstants.setLineSpacing (jTextPaneSet, 0.2f); pane.setParagraphAttributes (jTextPaneSet, true); ' Спасибо, sorifiend! – Deejay