title: How to add ActionListener to a JButton added to a JPanel?
body: <p>My aim is to make a paint type application.</p>
  
  <p>Thank you for your suggestions..
  but there is still error in the code.</p>
  
  <p>In netbeans IDE error : 'method addActionListener in class cannot be applied to given types' occurs in the line button1.addActionListener(panel);</p>
  
  <p>so i used it suggestion to cast it to ActionListener. so the line is button1.addActionListener((ActionListener) panel);
  but still in the below '<strong>if statement</strong>' error occurs : cannot find symbol variable 'button1'</p>
  
  <p>Thanks again for your help.
  here is changed code. i changed the variable names and used adapter class to make code simpler.</p>
  
  <pre><code>import java.awt.*;
  
  import java.awt.event.*;
  
  import javax.swing.*;
  
  class r extends JPanel
  {
  
  public int x1,x2,y1,y2;
  
  public static double SWITCH;
  
  public r()
  
  {
  
      setBackground(Color.WHITE);
  
      addMouseListener(new MouseAdapter()
  
      {
  
           public void mousePressed(MouseEvent m)
  
           {
  
           x1=m.getX();
  
           y1=m.getY();
  
           repaint();
  
           }
  
           public void mouseReleased(MouseEvent m)
  
           {
  
           x1=x2=y1=y2=0;
  
           repaint();
  
           }
  
      });
  
      addMouseMotionListener(new MouseMotionAdapter()
  
      {
  
          public void mouseDragged(MouseEvent m)
  
          {
  
             x2=m.getX();
  
             y2=m.getY();
  
             repaint();
  
          }
  
      });
  
    }
  
    public void paintComponent(Graphics g)
  
    {
  
      super.paintComponent(g);
  
      if(SWITCH == 2)
  
      {
  
          g.drawRect(x1, y1, x2, y2);
  
      }
  
      else if (SWITCH == 3)
  
      {
  
          g.drawOval(x1,y1,x2,y2);
  
      }
  
      else
  
      {
  
          g.drawString("qwe", x1, y1);
  
      }
  
   }
  
   }
  
   public class q extends JFrame implements ActionListener
   {
   public static void main(String[] args)
  
   {
  
      q window = new q();
  
      window.setVisible(true);
  
      window.setSize(1024, 800);
  
      window.setDefaultCloseOperation(EXIT_ON_CLOSE);
  
      Container cont = window.getContentPane();
  
      cont.setLayout(new GridLayout(2,2));
  
      r panel = new r();
  
      JPanel BPanel = new JPanel();
  
      cont.add(panel);
  
      cont.add(BPanel);
  
      BPanel.setBackground(Color.blue);
  
      JButton button1,button2;
  
      button1 = new JButton("Rect");
  
      button2 = new JButton("Oval");
  
      BPanel.add(button1);
  
      BPanel.add(button2);
  
      button1.addActionListener((ActionListener) panel);
  
      button2.addActionListener((ActionListener) panel);
  
  }
  
  public void actionPerformed(ActionEvent a)
  
  {
  
      Object obj;
  
      obj=a.getSource();
  
      if (obj== button1)
  
      {
  
          SWITCH = 2;
  
          repaint();
  
      }
  
      else
  
      {
  
         SWITCH = 3;
  
         repaint();
  
      }
  
  }
  
  }
  </code></pre>