title: (Homework) Java GUI: button increments/decrements by 2 instead of 1
body: <p>I'm working on a simple java GUI program with two buttons and a displayed variable (num). The buttons are named 'increment' and 'decrement', and their functions are to increment or decrement the displayed variable num, which is initially set to 50.</p>
  
  <p>Although the program will compile, the increment and decrement buttons increase/decrease the value of num by two instead of one. I've tried things such as changing the code 'num++' to 'num = num + 1', but this still causes the button to increment by two.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  
  public class Assignment_4 extends JFrame {
      private int num = 50;
      private JButton increment;
      private JButton decrement;
      private JLabel label;
      private JPanel buttonPanel;
      private JPanel displayPanel;
  
      public Assignment_4() {
          increment = new JButton ("Increment");
          decrement = new JButton ("Decrement");
          increment.addActionListener (new incListener());
          decrement.addActionListener (new decListener());
          increment.addActionListener (new incListener());
          decrement.addActionListener (new decListener());
  
          num = 50;
          label = new JLabel ("" + num);
  
          buttonPanel = new JPanel();
          displayPanel = new JPanel();
  
          buttonPanel.add(increment);
          buttonPanel.add(decrement);
          displayPanel.add(label);
  
          setLayout(new BorderLayout());
          add(buttonPanel, BorderLayout.CENTER);
          add(displayPanel, BorderLayout.NORTH);
      }
  
      private class incListener implements ActionListener {
          public void actionPerformed(ActionEvent event) {
              num++;
              label.setText("" + num);
          }
      }
  
      private class decListener implements ActionListener {
          public void actionPerformed (ActionEvent event) {
              num--;
              label.setText("" + num);
          }
      }
  
      public static void main(String[] args) {
          Assignment_4 win = new Assignment_4();
          win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          win.pack();
          win.setVisible(true);
      }
  }
  </code></pre>
  
  <p>I appreciate any help you can offer.</p>