title: Changing ImageIcon to another picture with button click
body: <p>So I want to replace an ImageIcon in a JLabel every time a button is pressed. I made it so the image, label, and GridBagConstraints are public. When I try to change it though nothing happens.</p>
  
  <p>Am I going about this the wrong way or?</p>
  
  <p>Thanks!</p>
  
  <pre><code>package hi.low;
  
  import java.awt.*;
  import java.awt.event.*;
  import java.util.ArrayList;
  import javax.swing.*;
  import java.util.Random;
  import java.util.ArrayList;
  
  
  public class Card_panel extends JPanel implements ActionListener
  {
     private final int WIDTH = 400, HEIGHT = 200;
  
     private static String[] imageList =  { 
            "images/2h.png", "images/3h.png", "images/4h.png", "images/5h.png", "images/6h.png",
            "images/7h.png", "images/8h.png", "images/9h.png", "images/th.png", "images/jh.png",
            "images/qh.png", "images/kh.png", "images/ah.png", "images/2d.png", "images/3d.png", 
            "images/4d.png", "images/5d.png", "images/6d.png", "images/7d.png", "images/8d.png", 
            "images/9d.png", "images/td.png", "images/jd.png", "images/qd.png", "images/kd.png", 
            "images/ad.png", "images/2c.png", "images/3c.png", "images/4c.png", "images/5c.png",
            "images/6c.png", "images/7c.png", "images/8c.png", "images/9c.png", "images/tc.png",
            "images/jc.png", "images/qc.png", "images/kc.png", "images/ac.png", "images/2s.png",
            "images/3s.png", "images/4s.png", "images/5s.png", "images/6s.png", "images/7s.png",
            "images/8s.png", "images/9s.png", "images/ts.png", "images/js.png", "images/qs.png",
            "images/ks.png", "images/as.png"
     };
     private static int imageNum = -1;
  
     GridBagConstraints gbc = new GridBagConstraints();
     GridBagConstraints c = new GridBagConstraints();
     ImageIcon image;
     JLabel label;
     private static ArrayList&lt;Card&gt; deck;
     private static Card tempCard, currentCard;
  
     public Card_panel()
     {
          deck = new ArrayList();
          char[] suits = {'h', 'd', 'c', 's'};
          char[] values = {'2', '3', '4', '5', '6', '7', '8', '9', 't', 'j', 'q', 'k', 'a'};             
          for(int a = 0; a&lt;suits.length; a++)
          {
              for(int b = 0; b&lt;values.length; b++)
              {
                  tempCard = new Card(suits[a],values[b]);
                  deck.add(tempCard);
              }
          }            
          int rand_num;
          int cards_left = 52;            
          Random generator = new Random( System.currentTimeMillis() );            
          for(int a = 0; a&lt;52; a++)
          {
              rand_num = generator.nextInt(cards_left);
              currentCard = deck.get(rand_num);
              deck.remove(rand_num);
              cards_left -= 1;
          }
          setPreferredSize(new Dimension(WIDTH, HEIGHT));
          setBackground (Color.green.darker().darker());    
          setLayout(new GridBagLayout());
  
          gbc.gridx = 0;
          gbc.gridy = 0;
          gbc.gridwidth = 2;
  
          image = new ImageIcon(imageList[0]);
          label = new JLabel("", image, JLabel.CENTER);
          add( label, gbc );
  
          gbc.gridx = 0;
          gbc.gridy++;
          gbc.gridwidth = 1;
          JButton higher = new JButton("Higher");
          higher.setActionCommand("higher");
          higher.addActionListener (this);
          add( higher, gbc );
  
          gbc.gridx++;
          JButton lower = new JButton("Lower");
          lower.setActionCommand("lower");
          lower.addActionListener (this);
          add( lower, gbc );
     }
  
      @Override
      public void actionPerformed(ActionEvent e)
      {
          String Action;
          Action = e.getActionCommand ();
  
          if (Action.equals ("higher"))
          {
              System.out.println("User chose higher!");
              //function to check if it is right if right go to next card
              image = new ImageIcon(imageList[1]);
              label = new JLabel("", image, JLabel.CENTER);
              add( label, gbc );
          }
  
          if (Action.equals ("lower"))
          {
              System.out.println("User chose lower!");
              //function to check if it is right if right go to next card
          }    
      }        
  }
  </code></pre>