Как изменить интервал между буквами в JTextPane?

#java #swing #fonts #jtextpane #letter-spacing

#java #swing #шрифты #jtextpane #интервал между буквами

Вопрос:

Мне нужно изменить интервал между буквами (отслеживание шрифта) в JTextPane, и я не могу заставить это работать.

Когда я использую JTextArea, я могу просто сделать:

 Font font = new Font("Courier New", Font.PLAIN, 10);
HashMap <TextAttribute, Object> attrs = new HashMap<TextAttribute, Object>();
attrs.put(TextAttribute.TRACKING, -0.1);
font = font.deriveFont(attrs);
textArea.setFont(font);
  

но поскольку мне нужно изменить межстрочный интервал, мне нужно использовать JTextPane, и выполнение:

 textPane.setFont(font)
  

то, что я сделал с JTextArea, не работает. еще одна вещь, которую я пробовал, была:

 MutableAttributeSet set = new SimpleAttributeSet();
StyleConstants.setLineSpacing(set, -0.2);
StyleConstants.setFontFamily(set,"Courier New");
StyleConstants.setFontSize(set, 10);
set.addAttribute(TextAttribute.TRACKING, -0.1);
ta.setParagraphAttributes(set, true);
  

Но атрибут отслеживания не работает.

Что я делаю не так?

Ответ №1:

Вы имеете в виду кернинг? Здесь показано, как указать пользовательский кернинг и еще некоторые текстовые эффекты http://java-sl.com/gp_effects.html

Комментарии:

1. Я попробовал это, и работает, но это нарушает атрибут межстрочного интервала. Так что этого недостаточно…