Стили в JTextPane - Java

Узнай цену своей работы

Формулировка задачи:

Как сделать что бы в JTextPane стиль и цвет менял только выделенный текст?
Листинг программы
  1. public static void main(String[] args){
  2. JFrame fr = new JFrame ("Блокнот");
  3. JTextPane txp = new JTextPane();
  4. fr.setSize (600,700);
  5. fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  6. fr.setLocationRelativeTo(null);
  7. fr.setVisible(true);
  8. fr.setLayout(new GridBagLayout());
  9. JMenuBar mb = new JMenuBar();
  10. fr.setJMenuBar(mb);
  11. JMenu mi4 = new JMenu("Шрифты");
  12. JMenuItem mc1 = new JMenuItem("Курсив");
  13. mc1.addActionListener(new ActionListener(){
  14. @Override
  15. public void actionPerformed(ActionEvent event) {
  16. txp.setFont(new Font ("", Font.ITALIC, 14));
  17. }
  18. });

Решение задачи: «Стили в JTextPane»

textual
Листинг программы
  1.  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.         // TODO add your handling code here:
  3.         StyledDocument doc = (StyledDocument) jTextPane1.getDocument();
  4.         int selectionEnd = jTextPane1.getSelectionEnd();
  5.         int selectionStart = jTextPane1.getSelectionStart();
  6.         if (selectionStart == selectionEnd) {
  7.             return;
  8.         }
  9.         Element element = doc.getCharacterElement(selectionStart);
  10.         AttributeSet as = element.getAttributes();
  11.         MutableAttributeSet asNew = new SimpleAttributeSet(as.copyAttributes());
  12.         StyleConstants.setBold(asNew, !StyleConstants.isBold(as));
  13.         doc.setCharacterAttributes(selectionStart, jTextPane1.getSelectedText().length(), asNew, true);
  14.        
  15.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут