title: Drawing text from keyboard input on a canvas
body: <p>I want to make a paint program.
  When the user clicks the text button, then the user click the canvas the user can input the text they want in the clicked location.</p>
  
  <p>What can I use to make that happen?</p>
  
  <p>When i use <code>drawstring</code>, I can put the pre-defined text and user click location</p>
  
  <pre><code>Graphics2D g2 = (Graphics2D) g;
  g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  Font font = new Font("Serif", Font.PLAIN, 40);
  g2.setFont(font);
  g2.drawString("text", x, y);
  </code></pre>
  
  <p>How can I change <code>"text"</code> to what the user inputs from keyboard?</p>
  
  <p>My MainPanel Code (For View Mostly)</p>
  
  <pre><code>public class MainPanel extends JPanel implements ActionListener, ChangeListener {
  private JButton button1, button2, button3, button4, button5, button6, button7, button8, button9, button10, button11, button12, activeButton;
  private ButtonGroup buttonGroup;
  private DrawPanel drawPanel;
  private boolean insertedDrawPanel;
  private JSlider slider;
  private JTextField valueField;
  private int jSliderMin, jSliderMax, jSliderInit;
  
  private Toolkit toolkit;
  private Image cursorImage;
  private Point cursorHotSpot;
  private Cursor fillCursor, penCursor, eraserCursor, lineCursor, rectCursor, ovalCursor, triangleCursor, starCursor;
  private Color color1, color2;
  
  public MainPanel()
  {
      try {
          javax.swing.UIManager.setLookAndFeel( javax.swing.UIManager.getSystemLookAndFeelClassName());
      } catch (ClassNotFoundException ex) {
          Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
      } catch (InstantiationException ex) {
          Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
      } catch (IllegalAccessException ex) {
          Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
      } catch (UnsupportedLookAndFeelException ex) {
          Logger.getLogger(MainPanel.class.getName()).log(Level.SEVERE, null, ex);
      }
  
      setPreferredSize(new Dimension(1280, 720));
      initiateComponent();
      buildLayout();
      registerListener();
      checkDrawPanel();
  }
  
  public JPanel getDrawPanel() {
      return drawPanel;
  }
  
  public void initiateComponent()
  {
      int width=54;
      int height=48;
  
      jSliderMin=1;
      jSliderMax=100;
      jSliderInit=1;
  
      insertedDrawPanel=false;
  
      BufferedImage buttonIcon;
  
      activeButton= new JButton();
  
      button1 = new JButton();
      button1.setPreferredSize(new Dimension(width, height));
      button1.setName("");
      button2 = new JButton();
      button2.setPreferredSize(new Dimension(width, height));
      button2.setName("");
      button3 = new JButton();
      button3.setPreferredSize(new Dimension(width, height));
      button4 = new JButton("");
      button4.setPreferredSize(new Dimension(width, height));
      button5 = new JButton("");
      button5.setPreferredSize(new Dimension(width, height));
      button6 = new JButton("");
      button6.setPreferredSize(new Dimension(width, height));
      button7 = new JButton("1");
      button7.setPreferredSize(new Dimension(width, height));
      button8 = new JButton("2");
      button8.setPreferredSize(new Dimension(width, height));
      button9 = new JButton("");
      button9.setPreferredSize(new Dimension(width, height));
      button10 = new JButton("");
      button10.setPreferredSize(new Dimension(width, height));
      button11 = new JButton("");
      button11.setPreferredSize(new Dimension(width, height));
      button12 = new JButton("");
      button12.setPreferredSize(new Dimension(width, height));
  
  
  public void buildLayout()
  {
      this.setLayout(new BorderLayout());
  
      JPanel buttonPanel = new JPanel();
      String colSizes = "20px, 54px, 10px, 54px, 20px";
      String rowSizes = "20px, 48px, 20px, 48px, 20px, 48px, 20px, 48px, 20px, 200px, 48px, 48px, 20px, 48px";
      FormLayout layout = new FormLayout(colSizes, rowSizes);
      buttonPanel.setLayout(layout);
      CellConstraints cc = new CellConstraints();
      buttonPanel.add(button1, cc.xy(2, 2));
      buttonPanel.add(button2, cc.xy(4, 2));
      buttonPanel.add(button3, cc.xy(2, 4));
      buttonPanel.add(button4, cc.xy(4, 4));
      buttonPanel.add(button5, cc.xy(2, 6));
      buttonPanel.add(button6, cc.xy(4, 6));
      buttonPanel.add(button7, cc.xy(2, 8));
      buttonPanel.add(button8, cc.xy(4, 8));
      buttonPanel.add(slider,  cc.xywh(2, 10, 3, 1));
      buttonPanel.add(valueField, cc.xyw(2, 11, 3));
      buttonPanel.add(button9, cc.xy(2, 12));
      buttonPanel.add(button10, cc.xy(4, 12));
      buttonPanel.add(button11, cc.xy(2, 14));
      buttonPanel.add(button12, cc.xy(4, 14));
  
      this.add(buttonPanel, BorderLayout.WEST);
  }
  
  public void registerListener()
  {
      button1.addActionListener(this);
      button2.addActionListener(this);
      button3.addActionListener(this);
      button4.addActionListener(this);
      button5.addActionListener(this);
      button6.addActionListener(this);
      button7.addActionListener(this);
      button8.addActionListener(this);
      button9.addActionListener(this);
      button10.addActionListener(this);
      button11.addActionListener(this);
      button12.addActionListener(this);
      slider.addChangeListener(this);
  }
  
  public void addDrawPanel(DrawPanel panel)
  {
      drawPanel=panel;
      JPanel centerPanel = new JPanel();
      String colSizes = "20px, pref,20px";
      String rowSizes = "20px, pref,20px";
      FormLayout layout = new FormLayout(colSizes, rowSizes);
      centerPanel.setLayout(layout);
      CellConstraints cc = new CellConstraints();
      centerPanel.add(drawPanel, cc.xy(2, 2));
  
      this.add(centerPanel, BorderLayout.CENTER);
  
      insertedDrawPanel=true;
      checkDrawPanel();
  }
  
  public void addOpenedImage(Image img)
  {
      drawPanel = new DrawPanel();
      drawPanel.setPreferredSize(new Dimension(img.getWidth(null),img.getHeight(null)));
      drawPanel.setBgImg(img);
      JPanel centerPanel = new JPanel();
      String colSizes = "20px, pref,20px";
      String rowSizes = "20px, pref,20px";
      FormLayout layout = new FormLayout(colSizes, rowSizes);
      centerPanel.setLayout(layout);
      CellConstraints cc = new CellConstraints();
      centerPanel.add(drawPanel, cc.xy(2, 2));
  
      this.add(centerPanel, BorderLayout.CENTER);
  
      insertedDrawPanel=true;
      checkDrawPanel();
  }
  
  
  @Override
  public void actionPerformed(ActionEvent ae) {
      if(ae.getSource().equals(button1))
      {
          activeButton=button1;
          this.setCursor(penCursor);
  
          resetButtonChanges();
          drawPanel.setPenActive(true);
      }
  
      if(ae.getSource().equals(button2))
      {
          activeButton=button2;
          this.setCursor(lineCursor);
  
          resetButtonChanges();
          drawPanel.setLineActive(true);
      }
  
      if(ae.getSource().equals(button3))
      {
          activeButton=button3;
          this.setCursor(eraserCursor);
  
          resetButtonChanges();
          drawPanel.setEraserActive(true);
      }
  
      if(ae.getSource().equals(button4))
      {
          activeButton=button4;
  
          resetButtonChanges();
          drawPanel.setTextActive(true);
      }
  
      if(ae.getSource().equals(button7))
      {
          activeButton= button7;
  
          resetButtonChanges();
  
          color1 = JColorChooser.showDialog(null, "Pick your Background Color", color1);
  
  
          if(color1!=null)
          {
              drawPanel.setBackground(color1);
          }
  
      }
  
      if(ae.getSource().equals(button8))
      {
          activeButton= button8;
  
          resetButtonChanges();
  
          color2 = JColorChooser.showDialog(null, "Pick your Stroke / Shape Color", color2);
  
          if(color2!=null)
          {
              drawPanel.setStrokecolor(color2);
          }
  
      }
  
      if(ae.getSource().equals(button9))
      {
          activeButton=button9;
          this.setCursor(rectCursor);
  
          resetButtonChanges();
          drawPanel.setRectActive(true);
      }
  
      if(ae.getSource().equals(button10))
      {
          activeButton=button10;
          this.setCursor(ovalCursor);
  
          resetButtonChanges();
          drawPanel.setOvalActive(true);
      }
  
      if(ae.getSource().equals(button11))
      {
          activeButton=button11;
          this.setCursor(triangleCursor);
  
          resetButtonChanges();
          drawPanel.setTriangleActive(true);
      }
  
      if(ae.getSource().equals(button12))
      {
          activeButton=button12;
          this.setCursor(starCursor);
  
          resetButtonChanges();
          drawPanel.setStarActive(true);
      }
  
  }
  
  public void resetButtonChanges()
  {
      if(activeButton!=button1)
      {
          drawPanel.setPenActive(false);
      }
      if(activeButton!=button2)
      {
          drawPanel.setLineActive(false);
      }
      if(activeButton!=button3)
      {
          drawPanel.setEraserActive(false);
      }
      if(activeButton!=button4)
      {
          drawPanel.setTextActive(false);
      }
      if(activeButton!=button9)
      {
          drawPanel.setRectActive(false);
      }
      if(activeButton!=button10)
      {
          drawPanel.setOvalActive(false);
      }
      if(activeButton!=button11)
      {
          drawPanel.setTriangleActive(false);
      }
      if(activeButton!=button12)
      {
          drawPanel.setStarActive(false);
      }
  }
  
  public void checkDrawPanel()
  {
      if(insertedDrawPanel==false)
      {
          button1.setEnabled(false);
          button2.setEnabled(false);
          button3.setEnabled(false);
          button4.setEnabled(false);
          button5.setEnabled(false);
          button6.setEnabled(false);
          button7.setEnabled(false);
          button8.setEnabled(false);
          button9.setEnabled(false);
          button10.setEnabled(false);
          button11.setEnabled(false);
          button12.setEnabled(false);
          slider.setEnabled(false);
      }
  
      else
      {
          button1.setEnabled(true);
          button2.setEnabled(true);
          button3.setEnabled(true);
          button4.setEnabled(true);
          button5.setEnabled(true);
          button6.setEnabled(true);
          button7.setEnabled(true);
          button8.setEnabled(true);
          button9.setEnabled(true);
          button10.setEnabled(true);
          button11.setEnabled(true);
          button12.setEnabled(true);
          slider.setEnabled(true);
      }
  }
  
  @Override
  public void stateChanged(ChangeEvent ce) {
       if(ce.getSource().equals(slider))
       {
          drawPanel.setStrokevalue(slider.getValue());
          valueField.setText(String.valueOf(slider.getValue()));
       }
  
       if(ce.getSource().equals(button7))
       {
           button7.setBackground(color1);
           button7.setForeground(color2);
       }
  
       if(ce.getSource().equals(button8))
       {
           button8.setBackground(color2);
           button8.setForeground(color1);
       }
  }
  </code></pre>
  
  <p>}</p>
  
  <p>My DrawPanel Code</p>
  
  <p>public class DrawPanel extends JPanel implements ActionListener, FocusListener, DocumentListener, MouseListener, MouseMotionListener{</p>
  
  <pre><code>private boolean penActive ,eraserActive, lineActive, rectActive, ovalActive, triangleActive, starActive, textActive, isDrag, isReleased;
  private int x, y , xDrag, yDrag, xRelease, yRelease, strokevalue;
  private Color strokecolor ,dragColor;
  private Vector&lt;int[]&gt; allShapes;
  private int[] dragShape;
  private Vector&lt;Color&gt; shapeColor;
  private Vector&lt;String&gt; type;
  private String dragType;
  private JTextField text;
  
  private Image bgImg;
  
  public boolean isPenActive() {
      return penActive;
  }
  
  public void setPenActive(boolean penActive) {
      this.penActive = penActive;
  }
  
  public boolean isEraserActive() {
      return eraserActive;
  }
  
  public void setEraserActive(boolean eraserActive) {
      this.eraserActive = eraserActive;
  }
  
  public boolean isTriangleActive() {
      return triangleActive;
  }
  
  public void setTriangleActive(boolean triangleActive) {
      this.triangleActive = triangleActive;
  }
  
  public boolean isLineActive() {
      return lineActive;
  }
  
  public void setLineActive(boolean lineActive) {
      this.lineActive = lineActive;
  }
  
  public int getStrokevalue() {
      return strokevalue;
  }
  
  public void setStrokevalue(int strokevalue) {
      this.strokevalue = strokevalue;
  }
  
  public Color getStrokecolor() {
      return strokecolor;
  }
  
  public void setStrokecolor(Color strokecolor) {
      this.strokecolor = strokecolor;
  }
  
  public boolean isRectActive() {
      return rectActive;
  }
  
  public void setRectActive(boolean rectActive) {
      this.rectActive = rectActive;
  }
  
  public boolean isOvalActive() {
      return ovalActive;
  }
  
  public void setOvalActive(boolean ovalActive) {
      this.ovalActive = ovalActive;
  }
  
  public boolean isStarActive() {
      return starActive;
  }
  
  public void setStarActive(boolean starActive) {
      this.starActive = starActive;
  }
  
  public boolean isTextActive() {
      return textActive;
  }
  
  public void setTextActive(boolean textActive) {
      this.textActive = textActive;
  }
  
  public Image getBgImg() {
      return bgImg;
  }
  
  public void setBgImg(Image bgImg) {
      this.bgImg = bgImg;
  }
  
  
  
  
  public DrawPanel()
  {
      setFocusable(true);
      setBackground(Color.white);
      initiateComponents();
      addMouseMotionListener(this);
      addMouseListener(this);
  }
  
  public void initiateComponents()
  {
      allShapes=new Vector&lt;int[]&gt;();
      shapeColor=new Vector&lt;Color&gt;();
      type=new Vector&lt;String&gt;();
  
      eraserActive = false;
      penActive = false;
      lineActive = false;
      rectActive = false;
      ovalActive = false;
      triangleActive = false;
      starActive = false;
      strokevalue=1;
      strokecolor=Color.BLACK;
  }
  
  @Override
  public void mouseClicked(MouseEvent me) {
  
      if (me.getClickCount() == 2)
          text.setEditable( true );
  
  
  }
  
  @Override
  public void mousePressed(MouseEvent me) { 
      x = me.getX(); 
      y = me.getY();   
  
      if(me.getClickCount() == 1)
      {
          this.requestFocusInWindow();
      }
      if(me.getClickCount() == 2)
      {
          System.out.println("asd");
          text.setLocation(me.getPoint());
          this.add(text);
          text.requestFocusInWindow();
          text.selectAll();
          repaint();
      }
  
  
  }
  
  @Override
  public void mouseReleased(MouseEvent me) {
      isDrag=false;
      isReleased=true;
      xRelease=me.getX();
      yRelease=me.getY();
      repaint();
  
  }
  
  @Override
  public void mouseEntered(MouseEvent me) {
  
  }
  
  @Override
  public void mouseExited(MouseEvent me) {
  
  }
  
  @Override
  public void mouseDragged(MouseEvent me) {
      isDrag=true;
      isReleased=false;
      xDrag=me.getX();
      yDrag=me.getY();
  
      repaint();
  
  
  
  }
  
  @Override
  public void mouseMoved(MouseEvent me) {
  
  }
  
  @Override
  public void paintComponent(Graphics g){
      super.paintComponent(g);
      Graphics2D g2 = (Graphics2D) g;
      g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
      if(penActive==true)
      {
  
          int[]coordinates=new int[5];
  
          if(isDrag)
          {
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=xDrag;
              coordinates[3]=yDrag;
              coordinates[4]=strokevalue;
  
              allShapes.add(coordinates);
  
              shapeColor.add(strokecolor);
              type.add("Pen");
  
              x=xDrag;
              y=yDrag;
          }
  
      }
  
      else if(eraserActive==true)
      {
          int[]coordinates=new int[5]; 
  
          if(isDrag)
          {
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=xDrag;
              coordinates[3]=yDrag;
              coordinates[4]=strokevalue;
              allShapes.add(coordinates);
  
              shapeColor.add(this.getBackground());
              type.add("Eraser");
  
              x=xDrag;
              y=yDrag;
          }
      }
  
      else if(lineActive==true)
      {
          int[]coordinates=new int[5]; 
  
          if(isDrag)
          {
              dragShape=new int[5];
              dragShape[0]=x;
              dragShape[1]=y;
              dragShape[2]=xDrag;
              dragShape[3]=yDrag;
              dragShape[4]=strokevalue;
  
              dragColor=strokecolor;
  
              dragType="Line";
          }
  
          if(isReleased)
          {
              dragShape=null;
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=xDrag;
              coordinates[3]=yDrag;
              coordinates[4]=strokevalue;
              allShapes.add(coordinates);
  
              shapeColor.add(strokecolor);
              type.add("Line");
          }
      }
  
      else if(textActive==true)
      {
          int[]coordinates=new int[3]; 
  
          if(isReleased)
          {
              dragShape=null;
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=strokevalue;
              allShapes.add(coordinates);
  
              shapeColor.add(strokecolor);
              type.add("Text");
          }
      }
  
      else if(triangleActive==true)
      {
          int[]coordinates=new int[4];
  
          if(isDrag)
          {
              dragShape=new int[4];
              dragShape[0]=x;
              dragShape[1]=y;
              dragShape[2]=-y+yDrag;
              dragShape[3]=strokevalue;
  
              dragColor=strokecolor;
  
              dragType="Triangle";
          }
  
          if(isReleased)
          {
              dragShape=null;
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=-y+yDrag;
              coordinates[3]=strokevalue;
  
              allShapes.add(coordinates);
  
              shapeColor.add(strokecolor);
              type.add("Triangle");
          }
      }
  
      else if(starActive==true)
      {
          int[]coordinates=new int[4];
  
          if(isDrag)
          {
              dragShape=new int[4];
              dragShape[0]=x;
              dragShape[1]=y;
              dragShape[2]=-y+yDrag;
              dragShape[3]=strokevalue;
  
              dragColor=strokecolor;
  
              dragType="Star";
          }
  
          if(isReleased)
          {
              dragShape=null;
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=-y+yDrag;
              coordinates[3]=strokevalue;
  
              allShapes.add(coordinates);
  
              shapeColor.add(strokecolor);
              type.add("Star");
          }
      }
  
      else if(rectActive==true)
      {
          int[]coordinates=new int[5];
  
          if(isDrag)
          {
              dragShape=new int[5];
              dragShape[0]=x;
              dragShape[1]=y;
              dragShape[2]=xDrag;
              dragShape[3]=yDrag;
              dragShape[4]= strokevalue;
  
              dragColor=strokecolor;
  
              dragType="Rectangle";
  
          }
  
          if(isReleased)
          {
              dragShape=null;
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=xDrag;
              coordinates[3]=yDrag;
              coordinates[4]=strokevalue;
  
              allShapes.add(coordinates);
  
              shapeColor.add(strokecolor);
              type.add("Rectangle");
          }
      }
  
      else if(ovalActive==true)
      {
          int[]coordinates=new int[4];
  
          if(isDrag)
          {
              dragShape=new int[4];
              dragShape[0]=x;
              dragShape[1]=y;
              dragShape[2]=-y+yDrag;
              dragShape[3]=strokevalue;
  
              dragColor=strokecolor;
  
              dragType="Oval";
          }
  
          if(isReleased)
          {
              dragShape=null;
              coordinates[0]=x;
              coordinates[1]=y;
              coordinates[2]=-y+yDrag;
              coordinates[3]=strokevalue;
  
              allShapes.add(coordinates);
  
              shapeColor.add(strokecolor);
              type.add("Oval");
          }
      }
  
      if(bgImg!=null)
      {
          g2.drawImage(bgImg, 0, 0, null);
      }
  
  
      for(int a=0;a&lt;allShapes.size();a++)
      {
          if(type.get(a).equals("Pen")||type.get(a).equals("Eraser")||type.get(a).equals("Line"))
          {
  
              int[]coordinates=allShapes.get(a);
              Color color=shapeColor.get(a);
              g2.setStroke(new BasicStroke(coordinates[4]));     
              g2.setPaint(color);
              g2.drawLine(coordinates[0], coordinates[1], coordinates[2], coordinates[3]);
          }
  
          else if(type.get(a).equals("Text"))
          {
              text = new JTextField("asd");
              Font font = new Font("Serif", Font.PLAIN, 40);
  
  
              g2.setFont(font);
  
          }
  
          else if(type.get(a).equals("Triangle"))
          {
              int[]coordinates=allShapes.get(a);
              Point2D b= new Point2D.Double(coordinates[0], coordinates[1]);
  
              Triangle triangle = new Triangle(b,coordinates[2]);
              g2.setStroke(new BasicStroke(coordinates[3]));
              g2.setPaint(dragColor);
              g2.draw(triangle);
          }
  
          else if(type.get(a).equals("Star"))
          {
              int[]coordinates=allShapes.get(a);
              Point2D b= new Point2D.Double(coordinates[0], coordinates[1]);
  
              Star star = new Star(b,coordinates[2], coordinates[2]);
              g2.setStroke(new BasicStroke(coordinates[3]));
              g2.setPaint(dragColor);
              g2.draw(star);
          }
  
          else if(type.get(a).equals("Rectangle"))
          {
              int[]coordinates=allShapes.get(a);
  
              Point2D b=new Point2D.Double(coordinates[0], coordinates[1]);
              Point2D c=new Point2D.Double(coordinates[2], coordinates[3]);
  
              Rectangle rectangle = new Rectangle(b,c);
  
              g2.setStroke(new BasicStroke(coordinates[4]));
              g2.setPaint(dragColor);
              g2.draw(rectangle);
          }
  
          else if(type.get(a).equals("Oval"))
          {
              int[]coordinates=allShapes.get(a);
              Point2D b= new Point2D.Double(coordinates[0], coordinates[1]);
  
              Circle oval = new Circle(b,coordinates[0], coordinates[1], coordinates[2]);
              g2.setStroke(new BasicStroke(coordinates[3]));
              g2.setPaint(dragColor);
              g2.draw(oval);
          }
  
      }
  
      if(dragShape!=null)
      {
          if(dragType.equals("Line"))
          {
              g2.setStroke(new BasicStroke(dragShape[4]));
              g2.setPaint(dragColor);
              g2.drawLine(dragShape[0], dragShape[1], dragShape[2], dragShape[3]);
          }
  
          else if(dragType.equals("Triangle"))
          {
              Point2D a= new Point2D.Double(dragShape[0], dragShape[1]);
  
              Triangle triangle = new Triangle(a,dragShape[2]);
              g2.setStroke(new BasicStroke(dragShape[3]));
              g2.setPaint(dragColor);
              g2.draw(triangle);
          }
  
          else if(dragType.equals("Star"))
          {
              Point2D a= new Point2D.Double(dragShape[0], dragShape[1]);
  
              Star star = new Star(a,dragShape[2],dragShape[2]);
              g2.setStroke(new BasicStroke(dragShape[3]));
              g2.setPaint(dragColor);
              g2.draw(star);
          }
  
          else if(dragType.equals("Rectangle")){
  
              Point2D b=new Point2D.Double(dragShape[0], dragShape[1]);
              Point2D c=new Point2D.Double(dragShape[2], dragShape[3]);
  
              Rectangle rectangle = new Rectangle(b,c);
  
              g2.setStroke(new BasicStroke(dragShape[4]));
              g2.setPaint(dragColor);
              g2.draw(rectangle);
          }
  
          else if(dragType.equals("Oval"))
          {
              Point2D a= new Point2D.Double(dragShape[0], dragShape[1]);
  
              Circle oval = new Circle(a,dragShape[0],dragShape[1], dragShape[2]);
              g2.setStroke(new BasicStroke(dragShape[3]));
              g2.setPaint(dragColor);
              g2.draw(oval);
          }
  
      }
  
  
  }
  
  @Override
  public void focusGained(FocusEvent e) {
  
  }
  
  @Override
  public void focusLost(FocusEvent e) {
      text.setEditable(false);
  }
  
  @Override
  public void insertUpdate(DocumentEvent e) {
      text.setSize(getPreferredSize());
  }
  
  @Override
  public void removeUpdate(DocumentEvent e) {
      text.setSize(getPreferredSize());
  }
  
  @Override
  public void changedUpdate(DocumentEvent e) {
  }
  
  @Override
  public void actionPerformed(ActionEvent e) {
      text.setEditable(false);
  }
  </code></pre>
  
  <p>}</p>