Размер шрифта в 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.