Размер шрифта в Jtextpane выглядит меньше, чем в других приложениях

У меня есть JTextPane, и если я что-то напишу в нем, например, с размером шрифта 12, то он выглядит меньше, чем текст, например, в MS Word с тем же размером и тем же семейством шрифтов.

Я искал в Интернете, и я обнаружил, что это не только моя конкретная проблема. Но я не могу найти никакого решения.

Установить больший размер шрифта не решение для меня.

Можно ли изменить меру или что-то в этом роде?

2 ответа

Решение

На самом деле есть разница в DPI для java (72 пикселя на дюйм) и windows (96 пикселей на дюйм). Для правильного отображения ваших шрифтов вы можете умножить их на 96/72 в Windows.

Вы можете переопределить

public Font getFont(AttributeSet attr)

метод DefaultStyledDocument, где получают размер шрифта из набора атрибутов и увеличивают его пропорционально.

На самом деле, для этого есть хитрость. С помощью документа JTextPane вы можете указать размер шрифта для каждого символа с помощью setCharacterAttributes. Теперь представьте, что у вас есть текст с размером шрифта 12, а затем текст с размером шрифта 14 внутри вашей JTextPane. Что произойдет, если вы измените глобальный размер шрифта JTextPane с помощью

myTextPane.setFont(myTextPane.getFont().deriveFont(newFontSize));

Ответ в том, что ваш текст будет по-прежнему считаться размером 12 и 14, но будет отображаться больше!

ВНИМАНИЕ: я не пробовал с StyledDocument. Только с HTMLDocument.

Другие вопросы по тегам