Проблема шрифтов и атрибутов JTextfield - PullRequest
2 голосов
/ 05 августа 2011

Итак, я создаю программу, которая изменяет JTextField в зависимости от того, что выбирает пользователь. Так что это в значительной степени похоже на документ Word с шрифтами (из JComboBox), размерами и атрибутами (жирным шрифтом ... и т. Д.). Очевидно, что мой очень маленький и работает только с одной строкой (A JTextField). Проблема, которую я получаю, состоит в том, что после того, как я записал некоторые вещи в поле с определенными атрибутами, и я хочу добавить больше слов с разными атрибутами, он изменяет все текстовое поле, а не только новую часть, которую я добавил. Я знаю проблема с этим

  Writer.addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent e) {
            if((e.getKeyChar() >= e.VK_A && e.getKeyChar()<= e.VK_Z) || (e.getKeyChar() >= 'a' && e.getKeyChar()<='z')|| e.getKeyChar() == '\b' ) // Checks to make sure No Numbers
            {
                Writer.setEditable(true);

            }
            else 
            {
                Writer.setEditable(false);
            }

            if(font.equals("Arial"))
            {
                if(size.equals("8"))
                {
                    setSize = 8;
                }
                else if(size.equals("10"))
                {
                    setSize = 10;
                }
                else if(size.equals("12"))
                {
                    setSize = 12;
                }

                if(color.equals("Black"))
                {
                    setColor = Color.BLACK;
                }
                else if(color.equals("Blue"))
                {
                    setColor = Color.BLUE;
                }
                else if(color.equals("Red"))
                {
                    setColor = Color.red;
                }

                Font font = new Font("Arial", setAttribute,    setSize);
                Writer.setFont(font); // I Know that this sets the font everytime, so i'm pretty sure this is where my problem is.
                Writer.setForeground(setColor);
            }

Любые идеи о том, как я могу сделать Изменение, чтобы у вновь введенных символов были шрифты, отличные от предыдущих символов.

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

JComponents для стиля текста - Как Использовать панели редактора и текстовые панели , примеры здесь , здесь , некоторые примеры на этот форум

1 голос
/ 05 августа 2011

Список текстовых редакторов WYSIWYG для Java здесь .Мне особенно нравится редактор метафаз , основанный на HTMLDocumentEditor.

Чарльза Белла
1 голос
/ 05 августа 2011

JTextFields позволяет использовать HTML.Для анализа и вставки нового HTML-кода может потребоваться немного работы, но вы можете сделать это таким образом.

...