Я пытаюсь разработать часть более крупного графического интерфейса, который будет форматировать текст, чтобы он выглядел хорошо. Он должен иметь возможность играть с текстом множеством забавных способов. Добавление границ, подчеркивание, то есть все, что я мог бы сделать с текстом в декоративных целях. Подходит ли JTextPane для этой цели?
В моем примере ниже я хочу, чтобы decorateTextPane()
отображал две строки текста с другим шрифтом. Но всякий раз, когда я вызываю textPane.setFont()
, я меняю шрифт всего существующего текста на панели.
public class OuterClass {
InnerClass inner = new InnerClass();
private class InnerClass {
private JTextPane textPane = new JTextPane()
public InnerClass() {
StyledDocument doc = textPane.getStyledDocument();
SimpleAttributeSet center = new SimpleAttributeSet();
StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER);
doc.setParagraphAttributes(0, doc.getLength(), center, false);
}
}
public void decorateTextPane() {
inner.textPane.setFont(New Font("Times New Roman", Font.PLAIN, 15));
inner.textPane.setText("First string");
inner.textPane.setFont(New Font("Calibri", Font.PLAIN, 15));
inner.textPane.append("\nSecond string"); //my textPane class defines an append method.
}
}