Стили в JTextPane - Java

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

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

Как сделать что бы в JTextPane стиль и цвет менял только выделенный текст?
public static void main(String[] args){
        JFrame fr = new JFrame ("Блокнот");  
        JTextPane txp = new JTextPane();
        fr.setSize (600,700);
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fr.setLocationRelativeTo(null);
        fr.setVisible(true);
        fr.setLayout(new GridBagLayout()); 
        JMenuBar mb = new JMenuBar();    
        fr.setJMenuBar(mb);
JMenu mi4 = new  JMenu("Шрифты");
        JMenuItem mc1 = new  JMenuItem("Курсив");
     mc1.addActionListener(new  ActionListener(){
            @Override
            public void actionPerformed(ActionEvent event) {
                txp.setFont(new Font ("", Font.ITALIC, 14));
            }
             });

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

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

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


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

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

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