title: How do I get each of my toggle buttons to do something different?
body: <p>Okay so I am programming a GUI using java swing and I have been using some old code that I used to create a moving square, but now I have to use toggle buttons to make some shapes appear and disappear from the window. My program is supposed to have 4 different toggle buttons(have 3 at the moment) and each will have a specific purpose: Name will display my name in the center of the screen, rectangle will display a rectangle on the bottom right of the screen, and oval will display an oval on the bottom right also. I have tried to use a series of Boolean in order to dictate which shape appears, but for some reason each button will only toggle the rectangle and i dont know why. Is there something I am doing wrong that causes all the buttons to do the same thing? 
  here is my code so far. First one is my paintPanel:</p>
  
  <pre><code> import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  
  public class PaintPanel extends JPanel
  {
      private static Color[] colors =
          { Color.RED, Color.BLACK, Color.PINK, Color.ORANGE };
      private int colorNumber = 0;
  
      private int shape = 0;
  
      private int x = 0;
      private int y = 0;
  
      private int width = 100;
      private int height = 100;
      private String display = " ";
      private String none = " ";
  
      private int dx = 2;
      private int dy = 2;
  
      private boolean rectangle = true;
      private boolean oval= true;
      private boolean Name = true;
      private boolean special = true;
  
      private String displayString = "hello";
  
      private boolean isStarted = true;
  
      /*public void update()
      {
          if (isStarted) 
          {
              x += dx;
              y += dy;
          }
          //dx ++;
          //dy ++;
  
          if (y + height &gt; getHeight())
          {
              dy = -Math.abs(dy);
              shape++;
              colorNumber = (colorNumber+1)%colors.length;
          }
          else if (y &lt; 0)
          {
              dy = Math.abs(dy);
              shape++;
              colorNumber = (colorNumber+1)%colors.length;
          }
  
          if (x + width &gt; getWidth())
          {
              dx = -Math.abs(dx);
              shape++;
              colorNumber = (colorNumber+1)%colors.length;
          }
          else if (x &lt; 0)
          {
              dx = Math.abs(dx);
              shape++;
              colorNumber = (colorNumber+1)%colors.length;
          }
  
      }*/
      public void input()
      {
          System.out.print("Button");
      }
  
      public void changeColor()
      {
          colorNumber = (colorNumber+1) % colors.length;
      }
  
      /*public void startStop()
      {
          //if (isStarted == true) isStarted = false;
          //else isStarted = true;
  
          isStarted = !isStarted;
      }
      */
  
      public void setDisplayText(String dt)
      {
          displayString = dt;
      }
  
  
      public void paintComponent(Graphics g)
      {
          super.paintComponent(g);
          int w = getWidth();
          int h = getHeight();
  
          int textx = x+w/2;
          int texty = y+h/2;
  
              FontMetrics fm = g.getFontMetrics();
              int texth = fm.getHeight();
              int textw = fm.stringWidth(display);
  
              textx -= textw/2;
              texty += texth/2;
              texty -= 5; 
          if(Name == true)
          {
              g.setColor(Color.BLACK);
              g.drawString(display, textx, texty);
              Name = false;
          }
          else if(Name == false)
          {
              g.drawString(none, textx, texty);
              Name = true;
          }
          if (oval == true)
          {
              g.setColor(Color.CYAN);
              g.fillOval((5*w)/8, (5*h)/8, w/4, h/4);
              oval = false;
          }
          else if(oval == false)
          {
              g.setColor(Color.WHITE);
              g.fillOval((5*w)/8, (5*h)/8, w/4, h/4);
              oval = true;
          }
          if(rectangle == true)
          {
              g.setColor(Color.PINK);
              g.fillRect(w/2, h/2, w/2, h/2);
              rectangle = false;
  
          }
          else if(rectangle == false)
          {
              g.setColor(Color.WHITE);
              g.fillRect(w/2, h/2, w/2, h/2);
              rectangle = true;
          }
  
  
  
          /*int w = getWidth();
          int h = getHeight();
          g.setColor(colors[colorNumber]);
          if (shape % 2 == 0) //g.fillOval(x, y, width, height);
          elseg.fillRect(x,y, width, height);
          */ 
          /*
          int textx = x+width/2;
          int texty = y+height/2;
  
          FontMetrics fm = g.getFontMetrics();
          int texth = fm.getHeight();
          int textw = fm.stringWidth(displayString);
  
          textx -= textw/2;
          texty += texth/2;
          texty -= 5;     
  
          g.setColor(colors[(colorNumber+1)%colors.length]);
          g.drawString(displayString, textx, texty);
          */
      }
  
  }
  </code></pre>
  
  <p>Whatever is commented out is because it will be implemented later for a special button.
  And here is my main class:</p>
  
  <pre><code>import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  
  public class GuiTest extends JFrame 
      implements ActionListener
  {
      private Timer frameTimer;
      private JToggleButton Name;
      private JToggleButton oval;
      private JToggleButton rectangle;
      //private JTextField theText;
      private PaintPanel paintPanel;
  
      public GuiTest()
      {
          setTitle("Servando Hernandez");
          setSize(500,500);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
          JPanel topPanel = new JPanel();
          topPanel.setLayout(new GridLayout(1,4));
  
          Name = new JToggleButton("Name");
          Name.addActionListener(this);
  
          oval = new JToggleButton("Oval");
          oval.addActionListener(this);
  
          rectangle = new JToggleButton("Rectangle");
          rectangle.addActionListener(this);
  
          //theText = new JTextField("HI");
          //theText.addActionListener(this);
  
  
          topPanel.add(Name);
          topPanel.add(oval);
          topPanel.add(rectangle);
          //topPanel.add(theText);
  
          Container contentPane = getContentPane();
          contentPane.setLayout(new BorderLayout());
          contentPane.add(topPanel, BorderLayout.SOUTH);
  
          paintPanel = new PaintPanel();
          contentPane.add(paintPanel, BorderLayout.CENTER);
  
          //frameTimer = new Timer(50, this);
          //frameTimer.start();
      }
  
      public void actionPerformed(ActionEvent e)
      {
          //System.out.println("Action performed");
          if (e.getSource() == oval)      
          {
              paintPanel.input();
          }
          /*else if (e.getSource() == frameTimer)
          {
              paintPanel.update();
          }*/
           if (e.getSource() == rectangle)
          {
              paintPanel.input();
          }
           if (e.getSource() == oval)
          {
              //System.out.println("start/stop");
              paintPanel.input();
          }
           if (e.getSource() == Name)
          {
              paintPanel.input();
              String text = e.getActionCommand();
              paintPanel.setDisplayText("Servando Hernandez");
              //System.out.println(text);
          }
  
          repaint();
      }
  
      public static void main(String[] args)
      {
          GuiTest gui = new GuiTest();
          gui.setVisible(true);
  
      }
  }
  </code></pre>