MyPanel и KeyListener - Java

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

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

В общем нужно создать программу графический редактор. Одной из функции программы является нанесение текста на изображение (как в Paint'e). Как это реализовано:
japan.addKeyListener(new KeyAdapter()
        {
            public void keyReleased(KeyEvent e)
            {
                japan.requestFocus();
            }
            public void keyTyped(KeyEvent e) 
            {
                if(rezhim==3){
                    Graphics g = imag.getGraphics();
                    Graphics2D g2 = (Graphics2D)g;
                    g2.setColor(maincolor);
                    g2.setStroke(new BasicStroke(2.0f));
                    String str = new String("");
                    str+=e.getKeyChar();
                    g2.setFont(new Font("Arial", 0, 15));
                    g2.drawString(str, xPad, yPad);
                    xPad+=10;
                    japan.requestFocus();
                    japan.repaint();
                }
            }
        });
japan, соответственно, панель. Все отлично работает, НО. При нажатии кнопки Backspace (удаление) выводятся эти прямоугольники: https://vk.cc/5PC2xQ. Как можно исправить?

Решение задачи: «MyPanel и KeyListener»

textual
Листинг программы
if (e.getKeyChar() == KeyEvent.VK_BACK_SPACE) {// удаляем из str последний символ }

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


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

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

13   голосов , оценка 4.231 из 5