package javaGame; import java.awt.GridLayout; import javax.swing.JFrame; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.Random; import javax.swing.JButton; import javax.swing.ImageIcon; import javax.swing.Icon; public class CardButton extends JFrame { Clicked handler; JButton hold; JButton held; int counter = 0; Icon pic1; Icon pic2; public JButton buttons[] = new JButton[16]; ImageIcon imagesicons[] = new ImageIcon[16]; public CardButton() { super("CardMatch"); setLayout(new GridLayout(4, 4)); handler = new Clicked(); // generate the buttons for (int i = 0; i < 16; i++) { buttons[i] = new JButton(); buttons[i].addActionListener(handler);// add button to action // listener add(buttons[i]);// add button to grid } // generate array with random images int counter1 = 0; int counter2 = 0; int counter3 = 0; int counter4 = 0; int counter5 = 0; int counter6 = 0; int counter7 = 0; int counter8 = 0; for (int i = 0; i < 16; i++) { Random rnd = new Random(); int num = 1 + rnd.nextInt(8); switch (num) { case 1: if (counter1 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter1++; } else { i--; continue; } break; case 2: if (counter2 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter2++; } else { i--; continue; } break; case 3: if (counter3 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter3++; } else { i--; continue; } break; case 4: if (counter4 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter4++; } else { i--; continue; } break; case 5: if (counter5 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter5++; } else { i--; continue; } break; case 6: if (counter6 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter6++; } else { i--; continue; } break; case 7: if (counter7 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter7++; } else { i--; continue; } break; case 8: if (counter8 < 2) { imagesicons[i] = new ImageIcon(getClass().getResource( (num) + ".png")); counter8++; } else { i--; continue; } break; default: break; } } } private class Clicked implements ActionListener { // handles event public void actionPerformed(ActionEvent e) { hold = (JButton) e.getSource(); if (hold.getIcon() == null) { for (int i = 0; buttons[i] != hold; i++) if (counter == 0) { hold.setIcon(imagesicons[i]); pic2 = imagesicons[i]; counter++; held = hold; } else { hold.setIcon(imagesicons[i]); pic1 = imagesicons[i]; // checkWinner(pic1,hold);TODO counter = 0; } } } } }