返回列表 發帖
  1. package tw.kuas.edu.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import java.awt.Image;

  5. import javax.swing.ImageIcon;
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8. import javax.swing.border.EmptyBorder;

  9. import java.awt.FlowLayout;

  10. import javax.swing.JLabel;

  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13. import java.awt.event.MouseAdapter;
  14. import java.awt.event.MouseEvent;

  15. public class Main extends JFrame {

  16.         private JPanel contentPane;

  17.         /**
  18.          * Launch the application.
  19.          */
  20.         public static void main(String[] args) {
  21.                 EventQueue.invokeLater(new Runnable() {
  22.                         public void run() {
  23.                                 try {
  24.                                         Main frame = new Main();
  25.                                         frame.setVisible(true);
  26.                                 } catch (Exception e) {
  27.                                         e.printStackTrace();
  28.                                 }
  29.                         }
  30.                 });
  31.         }

  32.         /**
  33.          * Create the frame.
  34.          */
  35.         JLabel[] pokers = new JLabel[12];
  36.         ImageIcon[] randomcard = new ImageIcon[12];
  37.         ImageIcon[] answercard = new ImageIcon[12];
  38.         int randomnum[]=new int[12];
  39.         boolean isFirst=true;
  40.         public Main() {
  41.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  42.                 setBounds(100, 100, 662, 499);

  43.                 contentPane = new JPanel();
  44.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  45.                 setContentPane(contentPane);
  46.                 contentPane.setLayout(null);

  47.                 JLabel Poker_1 = new JLabel("New label");
  48.                
  49.                 Poker_1.setBounds(10, 10, 128, 128);
  50.                 contentPane.add(Poker_1);
  51.                 pokers[0] = Poker_1;
  52.                

  53.                 JLabel Poker_2 = new JLabel("New label");
  54.                 Poker_2.setBounds(159, 10, 128, 128);
  55.                 contentPane.add(Poker_2);
  56.                 pokers[1] = Poker_2;
  57.                

  58.                 JLabel Poker_3 = new JLabel("New label");
  59.                 Poker_3.setBounds(304, 10, 128, 128);
  60.                 contentPane.add(Poker_3);
  61.                 pokers[2] = Poker_3;
  62.                

  63.                 JLabel Poker_4 = new JLabel("New label");
  64.                 Poker_4.setBounds(453, 10, 128, 128);
  65.                 contentPane.add(Poker_4);
  66.                 pokers[3] = Poker_4;
  67.                
  68.                
  69.                 JLabel Poker_5 = new JLabel("New label");
  70.                 Poker_5.setBounds(10, 155, 128, 128);
  71.                 contentPane.add(Poker_5);
  72.                 pokers[4] = Poker_5;
  73.                

  74.                 JLabel Poker_6 = new JLabel("New label");
  75.                 Poker_6.setBounds(159, 155, 128, 128);
  76.                 contentPane.add(Poker_6);
  77.                 pokers[5] = Poker_6;
  78.                

  79.                 JLabel Poker_7 = new JLabel("New label");
  80.                 Poker_7.setBounds(304, 155, 128, 128);
  81.                 contentPane.add(Poker_7);
  82.                 pokers[6] = Poker_7;
  83.                

  84.                 JLabel Poker_8 = new JLabel("New label");
  85.                 Poker_8.setBounds(453, 155, 128, 128);
  86.                 contentPane.add(Poker_8);
  87.                 pokers[7] = Poker_8;
  88.         

  89.                 JLabel Poker_9 = new JLabel("New label");
  90.                 Poker_9.setBounds(10, 293, 128, 128);
  91.                 contentPane.add(Poker_9);
  92.                 pokers[8] = Poker_9;
  93.                

  94.                 JLabel Poker_10 = new JLabel("New label");
  95.                 Poker_10.setBounds(159, 293, 128, 128);
  96.                 contentPane.add(Poker_10);
  97.                 pokers[9] = Poker_10;
  98.         

  99.                 JLabel Poker_11 = new JLabel("New label");
  100.                 Poker_11.setBounds(304, 293, 128, 128);
  101.                 contentPane.add(Poker_11);
  102.                 pokers[10] = Poker_11;
  103.                

  104.                 JLabel Poker_12 = new JLabel("New label");
  105.                 Poker_12.setBounds(453, 293, 128, 128);
  106.                 contentPane.add(Poker_12);
  107.                 pokers[11] = Poker_12;
  108.                


  109.                 InitializeImg(pokers);
  110.                 rc();
  111.                 InitAnsImg(randomnum);
  112.                 AddListener();
  113.                 JLabel Reset = new JLabel("New label");
  114.                 Reset.setIcon(new ImageIcon(Main.class.getResource("/tw/kuas/edu/tw/pic/return.png")));
  115.                 Reset.setBounds(603, 418, 33, 33);
  116.                 contentPane.add(Reset);
  117.                 for(int i=0;i<12;i++) {
  118.                         System.out.println(answercard[i]);
  119.                 }

  120.         }

  121.         private ImageIcon InitImg() {
  122.                 ImageIcon icon = new ImageIcon(Main.class.getResource("pic/0.png"));
  123.                 Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  124.                 ImageIcon newIcon = new ImageIcon(img);
  125.                 return newIcon;
  126.         }

  127.         private void InitializeImg(JLabel[] pokers) {
  128.                 for(int i=0;i<pokers.length;i++) {
  129.                         ImageIcon icon = new ImageIcon(Main.class.getResource("pic/0.png"));
  130.                         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  131.                         ImageIcon newIcon = new ImageIcon(img);
  132.                         pokers[i].setIcon(newIcon);
  133.                 }
  134.         }

  135.         private void rc() {
  136.                 for(int i=0; i<12; i++) {
  137.                         randomnum[i]=(int)(Math.random()*12);    //0~11
  138.                         for(int j=0; j<i; j++) {
  139.                                 if(randomnum[i]==randomnum[j]) {
  140.                                         i--;
  141.                                         break;
  142.                                 }
  143.                         }
  144.                 }
  145.         }

  146.         private void InitAnsImg(int[] randomnum) {
  147.                
  148.                 for(int i=1;i<=6;i++) {
  149.                         ImageIcon icon = new ImageIcon(Main.class.getResource(String.format("pic/%d.png",i)));
  150.                         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  151.                         answercard[randomnum[i-1]] = new ImageIcon(img);
  152.                         answercard[randomnum[i+5]] = new ImageIcon(img);
  153.                 }
  154.         }
  155.         
  156.         private void AddListener() {
  157.                 for(int i=0;i<pokers.length;i++) {
  158.                         pokers[i].addMouseListener(adapter);
  159.                 }
  160.         }
  161.         ImageIcon temp;
  162.         int locate=0;
  163.          MouseAdapter adapter=new MouseAdapter(){
  164.                  @Override
  165.          public void mouseClicked(MouseEvent e)
  166.          {
  167.               for(int i=0; i<12; i++)
  168.               {
  169.                       if(e.getSource()==pokers[i] && isFirst == true) {
  170.                           temp = answercard[i];
  171.                           pokers[i].setIcon(answercard[i]);
  172.                           isFirst = false;
  173.                           locate = i;
  174.                           break;
  175.                       }
  176.                       else if(e.getSource()==pokers[i] && isFirst == false) {
  177.                           pokers[i].setIcon(answercard[i]);
  178.                           if(temp == pokers[i].getIcon())
  179.                           {
  180.                                   ImageIcon icon = new ImageIcon(Main.class.getResource("pic/0.png"));
  181.                               Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  182.                               ImageIcon newIcon = new ImageIcon(img);
  183.                               pokers[i].setIcon(newIcon);
  184.                               pokers[locate].setIcon(newIcon);
  185.                           }  
  186.                           isFirst = true;
  187.                           locate = i;
  188.                           break;
  189.                       }
  190.                            
  191.               }
  192.                
  193.               
  194.          }
  195.                
  196. };


  197. }
複製代碼

TOP

返回列表