返回列表 發帖

翻牌遊戲(二)

本帖最後由 周政輝 於 2018-4-21 11:52 編輯

接續上周進度,能讓12張撲克牌進行翻牌
  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.         public Main() {
  40.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  41.                 setBounds(100, 100, 662, 499);

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

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

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

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

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

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

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

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

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

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

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

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


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

  119.         }

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

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

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

  145.         private void InitAnsImg(int[] randomnum) {
  146.                
  147.                 for(int i=1;i<=6;i++) {
  148.                         ImageIcon icon = new ImageIcon(Main.class.getResource(String.format("pic/%d.png",i)));
  149.                         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  150.                         answercard[randomnum[i-1]] = new ImageIcon(img);
  151.                         answercard[randomnum[i+5]] = new ImageIcon(img);
  152.                 }
  153.         }
  154.        
  155.         private void AddListener() {
  156.                 for(int i=0;i<pokers.length;i++) {
  157.                         pokers[i].addMouseListener(adapter);
  158.                 }
  159.         }
  160.         // 給予一個共用的MouseAdapter事件
  161.          MouseAdapter adapter=new MouseAdapter(){
  162.                  @Override
  163.          public void mouseClicked(MouseEvent e)
  164.          {
  165.                  for(int i=0; i<12; i++)
  166.               {
  167.                       if(e.getSource()==pokers[i]) {
  168.                               pokers[i].setIcon(answercard[i]);
  169.                       }
  170.                            
  171.               }
  172.          }
  173. };


  174. }
複製代碼

  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import java.awt.Image;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;

  7. import javax.swing.ImageIcon;
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10. import javax.swing.border.EmptyBorder;
  11. import javax.swing.JLabel;
  12. import javax.swing.JButton;
  13. import java.awt.event.ActionListener;
  14. import java.awt.event.ActionEvent;

  15. public class Main extends JFrame {

  16.             JLabel lb13;
  17.             private JPanel contentPane;
  18.             public JLabel ii_b[] = new JLabel[12];
  19.             public ImageIcon ii_r[] = new ImageIcon[12];
  20.             public ImageIcon[] card = new ImageIcon[12];
  21.             public int randomnum[] = new int[12];
  22.         
  23.         public static void main(String[] args) {
  24.                 EventQueue.invokeLater(new Runnable() {
  25.                         public void run() {
  26.                                 try {
  27.                                         Main frame = new Main();
  28.                                         frame.setVisible(true);
  29.                                         frame.setTitle("翻牌遊戲");
  30.                                         ImageIcon icon = new ImageIcon(Main.class.getResource("star.png"));
  31.                                         Image image = icon.getImage();
  32.                                         frame.setIconImage(image);
  33.                                 } catch (Exception e) {
  34.                                         e.printStackTrace();
  35.                                 }
  36.                         }
  37.                 });
  38.         }

  39.    
  40.         public Main() {
  41.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  42.                 setBounds(100, 100, 589, 518);
  43.                 contentPane = new JPanel();
  44.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  45.                 setContentPane(contentPane);
  46.                 contentPane.setLayout(null);
  47.                
  48.                 JLabel lb1 = new JLabel("lb1");
  49.                 lb1.setBounds(10, 20, 128, 128);
  50.                 contentPane.add(lb1);
  51.                 //lb1.setIcon(entericon(0));
  52.                 ii_b[0] = lb1;
  53.                
  54.                 JLabel lb2 = new JLabel("lb2");
  55.                 lb2.setBounds(148, 20, 128, 128);
  56.                 contentPane.add(lb2);
  57.                 //lb2.setIcon(entericon(0));
  58.                 ii_b[1] = lb2;
  59.                
  60.                 JLabel lb3 = new JLabel("lb3");
  61.                 lb3.setBounds(288, 20, 128, 128);
  62.                 contentPane.add(lb3);
  63.                 //lb3.setIcon(entericon(0));
  64.                 ii_b[2] = lb3;
  65.                
  66.                 JLabel lb4 = new JLabel("lb4");
  67.                 lb4.setBounds(426, 20, 128, 128);
  68.                 contentPane.add(lb4);
  69.                 //lb4.setIcon(entericon(0));
  70.                 ii_b[3] = lb4;               
  71.                
  72.                 JLabel lb5 = new JLabel("lb5");
  73.                 lb5.setBounds(10, 155, 128, 128);
  74.                 contentPane.add(lb5);
  75.                 //lb5.setIcon(entericon(0));
  76.                 ii_b[4] = lb5;
  77.                
  78.                 JLabel lb6 = new JLabel("lb6");
  79.                 lb6.setBounds(148, 155, 128, 128);
  80.                 contentPane.add(lb6);
  81.                 //lb6.setIcon(entericon(0));
  82.                 ii_b[5] = lb6;
  83.                
  84.                 JLabel lb7 = new JLabel("lb7");
  85.                 lb7.setBounds(288, 155, 128, 128);
  86.                 contentPane.add(lb7);
  87.                 //lb7.setIcon(entericon(0));
  88.                 ii_b[6] = lb7;
  89.                
  90.                 JLabel lb8 = new JLabel("lb8");
  91.                 lb8.setBounds(426, 155, 128, 128);
  92.                 contentPane.add(lb8);
  93.                 //lb8.setIcon(entericon(0));
  94.                 ii_b[7] = lb8;
  95.                
  96.                 JLabel lb9 = new JLabel("lb9");
  97.                 lb9.setBounds(10, 293, 128, 128);
  98.                 contentPane.add(lb9);
  99.                 //lb9.setIcon(entericon(0));
  100.                 ii_b[8] = lb9;
  101.                
  102.                 JLabel lb10 = new JLabel("lb10");
  103.                 lb10.setBounds(148, 293, 128, 128);
  104.                 contentPane.add(lb10);
  105.                 //lb10.setIcon(entericon(0));
  106.                 ii_b[9] = lb10;
  107.         
  108.                 JLabel lb11 = new JLabel("lb11");
  109.                 lb11.setBounds(288, 293, 128, 128);
  110.                 contentPane.add(lb11);
  111.                 //lb11.setIcon(entericon(0));
  112.                 ii_b[10] = lb11;
  113.                
  114.                 JLabel lb12 = new JLabel("lb12");
  115.                 lb12.setBounds(426, 293, 128, 128);
  116.                 contentPane.add(lb12);
  117.                 //lb12.setIcon(entericon(0));
  118.                 ii_b[11] = lb12;
  119.                
  120.                 lb13 = new JLabel("lb13");
  121.                 lb13.setBounds(521, 431, 33, 33);
  122.                 contentPane.add(lb13);
  123.                 lb13.setIcon(new ImageIcon(Main.class.getResource("/bbs/istak/org/tw/13.png")));
  124.                 lb13.addMouseListener(adapter);
  125.                
  126.                 entericon_2(ii_b);
  127.                 randomcard();
  128.                 enter_rc(randomnum);
  129.                 addlistener();
  130.         }
  131.         /*
  132.         public ImageIcon entericon(int n)  
  133.         {
  134.                 ImageIcon icon = new ImageIcon(Main.class.getResource(n+".png"));
  135.                  return icon;
  136.         }
  137.         */
  138.         public void entericon_2(JLabel[] lb)
  139.         {
  140.                 for(int i=0; i<lb.length; i++)
  141.                 {
  142.                         ImageIcon icon = new ImageIcon(Main.class.getResource(String.format("%d.%s", 0,"png")));
  143.                         lb[i].setIcon(icon);
  144.                         lb[i].setSize(128, 128);
  145.                 }
  146.         }
  147.         public void randomcard()
  148.         {
  149.                 for(int i=0; i<12; i++)
  150.                 {
  151.                          randomnum[i]=(int)(Math.random()*12);
  152.                      for(int j=0; j<i; j++)
  153.                      {
  154.                              if(randomnum[i]==randomnum[j])
  155.                              {
  156.                                      i--;
  157.                                      break;
  158.                              }                 
  159.                      }          
  160.                 }
  161.         }
  162.         private void enter_rc(int[] randomnum)
  163.         {
  164.                 for(int i=1; i<=6; i++)
  165.                 {
  166.                         ImageIcon icon = new ImageIcon(Main.class.getResource(String.format("%d.png", i)));
  167.                         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );              
  168.                         ii_r[randomnum[i-1]]=new ImageIcon(img);
  169.                         ii_r[randomnum[i+5]]=new ImageIcon(img);
  170.                         //Ex 0 配 0+6  相同ImageIcon
  171.                 }
  172.                
  173.         }   
  174.         private void addlistener()
  175.         {
  176.                 for(int i=0; i<ii_b.length; i++)
  177.                 ii_b[i].addMouseListener(adapter);        
  178.         }
  179.         MouseAdapter adapter=new MouseAdapter(){
  180.             public void mouseClicked(MouseEvent e)
  181.                     {
  182.                     ImageIcon icon = new ImageIcon(Main.class.getResource("0.png"));
  183.                          //Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  184.                          for(int i=0; i<12; i++)
  185.                          {
  186.                                  if(e.getSource()==ii_b[i]) {
  187.                                          ii_b[i].setIcon(ii_r[i]);
  188.                                  }
  189.                                        
  190.                          }
  191.                          if(e.getSource()==lb13)
  192.                          {
  193.                                  for(int i=0; i<12; i++)
  194.                         ii_b[i].setIcon(icon);
  195.                  }
  196.                     }
  197.            };
  198. }
複製代碼

TOP

順便把Reset做好了
  1. package bbs.istak.org.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. import java.awt.Toolkit;

  16. public class Game extends JFrame {

  17.         private JPanel contentPane;

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

  33.         /**
  34.          * Create the frame.       
  35.          */
  36.         JLabel[] pokers = new JLabel[12];
  37.         ImageIcon[] randomcard = new ImageIcon[12];
  38.         ImageIcon[] answercard = new ImageIcon[12];
  39.         int randomnumber[]=new int[12];
  40.         public Game() {
  41.                 setIconImage(Toolkit.getDefaultToolkit().getImage(Game.class.getResource("pic/star.png")));
  42.                 setTitle("\u7FFB\u724C\u904A\u6232");
  43.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  44.                 setBounds(100, 100, 662, 499);

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

  49.                 JLabel Poker_1 = new JLabel();               
  50.                 Poker_1.setBounds(10, 10, 128, 128);
  51.                 contentPane.add(Poker_1);
  52.                 pokers[0] = Poker_1;
  53.                

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

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

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

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

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

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

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

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

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

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


  110.                 InitializeImg(pokers);
  111.                 rcard();
  112.                 InitAnsImg(randomnumber);
  113.                 AddListener();
  114.                 JLabel Reset = new JLabel();
  115.                 Reset.addMouseListener(new MouseAdapter() {
  116.                         @Override
  117.                         public void mouseClicked(MouseEvent a) {
  118.                                
  119.                                 if(a.getSource()==Reset)
  120.                                 {
  121.                                         InitializeImg(pokers);
  122.                                 }
  123.                                
  124.                         }
  125.                 });
  126.                 Reset.setIcon(new ImageIcon(Game.class.getResource("pic/R.png")));
  127.                 Reset.setBounds(603, 418, 33, 33);
  128.                 contentPane.add(Reset);
  129.                 for(int i=0;i<12;i++) {
  130.                         System.out.println(answercard[i]);
  131.                 }

  132.         }

  133.         private ImageIcon Android() {
  134.                 ImageIcon Android = new ImageIcon(Game.class.getResource("pic/0.png"));
  135.                 Image AndroidImg = Android.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  136.                 ImageIcon nAndroid = new ImageIcon(AndroidImg);
  137.                 return nAndroid;
  138.         }

  139.         private void InitializeImg(JLabel[] pokers) {
  140.                 for(int i=0;i<pokers.length;i++) {
  141.                         ImageIcon icon = new ImageIcon(Game.class.getResource("pic/0.png"));
  142.                         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  143.                         ImageIcon newIcon = new ImageIcon(img);
  144.                         pokers[i].setIcon(newIcon);
  145.                 }
  146.         }

  147.         private void rcard() {
  148.                 for(int i=0; i<12; i++) {
  149.                         randomnumber[i]=(int)(Math.random()*12);    //0~11
  150.                         for(int j=0; j<i; j++) {
  151.                                 if(randomnumber[i]==randomnumber[j]) {
  152.                                         i--;
  153.                                         break;
  154.                                 }
  155.                         }
  156.                 }
  157.         }

  158.         private void InitAnsImg(int[] randomnum) {
  159.                
  160.                 for(int i=1;i<=6;i++) {
  161.                         ImageIcon icon = new ImageIcon(Game.class.getResource(String.format("pic/%d.png",i)));
  162.                         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  163.                         answercard[randomnumber[i-1]] = new ImageIcon(img);
  164.                         answercard[randomnumber[i+5]] = new ImageIcon(img);
  165.                 }
  166.         }
  167.         
  168.         private void AddListener() {
  169.                 for(int i=0;i<pokers.length;i++) {
  170.                         pokers[i].addMouseListener(adapter);
  171.                 }
  172.         }

  173.          MouseAdapter adapter=new MouseAdapter(){
  174.                  @Override
  175.          public void mouseClicked(MouseEvent e)
  176.          {
  177.                  for(int i=0; i<12; i++)
  178.               {
  179.                       if(e.getSource()==pokers[i]) {
  180.                               pokers[i].setIcon(answercard[i]);
  181.                       }
  182.                            
  183.               }
  184.          }
  185. };


  186. }
複製代碼

TOP

本帖最後由 林侑成 於 2018-4-28 12:00 編輯
  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.         public Main() {
  40.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  41.                 setBounds(100, 100, 662, 499);

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

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

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

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

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

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

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

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

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

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

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

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


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

  119.         }

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

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

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

  145.         private void InitAnsImg(int[] randomnum) {
  146.                
  147.                 for(int i=1;i<=6;i++) {
  148.                         ImageIcon icon = new ImageIcon(Main.class.getResource(String.format("pic/%d.png",i)));
  149.                         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  150.                         answercard[randomnum[i-1]] = new ImageIcon(img);
  151.                         answercard[randomnum[i+5]] = new ImageIcon(img);
  152.                 }
  153.         }
  154.         
  155.         private void AddListener() {
  156.                 for(int i=0;i<pokers.length;i++) {
  157.                         pokers[i].addMouseListener(adapter);
  158.                 }
  159.         }
  160.         // 給予一個共用的MouseAdapter事件
  161.          MouseAdapter adapter=new MouseAdapter(){
  162.                  @Override
  163.          public void mouseClicked(MouseEvent e)
  164.          {
  165.                          for(int i=0; i<12; i++)
  166.                      {
  167.                              if(e.getSource()==pokers[i]) {
  168.                                      pokers[i].setIcon(answercard[i]);
  169.                              }
  170.                                    
  171.                      }
  172.          }
  173.   };
  174. }
複製代碼
我是眾神之王XXX  I love you
0000000000

TOP

  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import java.awt.Image;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;

  7. import javax.swing.ImageIcon;
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10. import javax.swing.border.EmptyBorder;
  11. import javax.swing.JLabel;

  12. public class PtSC extends JFrame {

  13.         private JPanel contentPane;
  14.         private static ImageIcon icon;
  15.         private ImageIcon poker[] = new ImageIcon [12];
  16.         private int num[] = new int [12];
  17.         private ImageIcon answer[] = new ImageIcon [12];
  18.         private JLabel larray[] = new JLabel [12];

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

  34.         /**
  35.          * Create the frame.
  36.          */
  37.         public PtSC() {
  38.                 icon = new ImageIcon(PtSC.class.getResource("star.png"));
  39.                         Image imgicon = icon.getImage().getScaledInstance(128,128,java.awt.Image.SCALE_FAST );
  40.       
  41.         
  42.                                 this.setIconImage(imgicon);
  43.                           larray = new JLabel [12];
  44.                 poker = new ImageIcon[12];
  45.                 answer = new ImageIcon[12];
  46.                
  47.                
  48.                  
  49.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  50.                 setBounds(100, 100, 620, 462);
  51.                 contentPane = new JPanel();
  52.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  53.                 setContentPane(contentPane);
  54.                 contentPane.setLayout(null);
  55.                
  56.                 JLabel label_0 = new JLabel(pokercard(0));
  57.                 label_0.setBounds(10, 10, 128, 128);
  58.                 contentPane.add(label_0);
  59.                 larray[0] = label_0;
  60.                
  61.                 JLabel label_1 = new JLabel(pokercard(1));
  62.                 label_1.setBounds(148, 10, 128, 128);
  63.                 contentPane.add(label_1);
  64.                 larray[1] = label_1;
  65.                
  66.                 JLabel label_2 = new JLabel(pokercard(2));
  67.                 label_2.setBounds(286, 10, 128, 128);
  68.                 contentPane.add(label_2);
  69.                 larray[2] = label_2;
  70.                
  71.                 JLabel label_3 = new JLabel(pokercard(3));
  72.                 label_3.setBounds(424, 10, 128, 128);
  73.                 contentPane.add(label_3);
  74.                 larray[3] = label_3;
  75.                
  76.                 JLabel label_4 = new JLabel(pokercard(4));
  77.                 label_4.setBounds(10, 149, 128, 128);
  78.                 contentPane.add(label_4);
  79.                 larray[4] = label_4;
  80.                
  81.                 JLabel label_5 = new JLabel(pokercard(5));
  82.                 label_5.setBounds(148, 149, 128, 128);
  83.                 contentPane.add(label_5);
  84.                 larray[5] = label_5;
  85.                
  86.                 JLabel label_6 = new JLabel(pokercard(6));
  87.                 label_6.setBounds(286, 149, 128, 128);
  88.                 contentPane.add(label_6);
  89.                 larray[6] = label_6;
  90.                
  91.                 JLabel label_7 = new JLabel(pokercard(7));
  92.                 label_7.setBounds(424, 149, 128, 128);
  93.                 contentPane.add(label_7);
  94.                 larray[7] = label_7;
  95.                
  96.                 JLabel label_8 = new JLabel(pokercard(8));
  97.                 label_8.setBounds(10, 286, 128, 128);
  98.                 contentPane.add(label_8);
  99.                 larray[8] = label_8;
  100.                
  101.                 JLabel label_9 = new JLabel(pokercard(9));
  102.                 label_9.setBounds(148, 286, 128, 128);
  103.                 contentPane.add(label_9);
  104.                 larray[9] = label_9;  
  105.                
  106.                 JLabel label_10 = new JLabel(pokercard(10));
  107.                 label_10.setBounds(286, 286, 128, 128);
  108.                 contentPane.add(label_10);
  109.                 larray[10] = label_10;
  110.                
  111.                 JLabel label_11 = new JLabel(pokercard(11));
  112.                 label_11.setBounds(424, 286, 128, 128);
  113.                 contentPane.add(label_11);
  114.                 larray[11] = label_11;
  115.                
  116.                 icon = new ImageIcon(PtSC.class.getResource("return.png"));
  117.         Image bimg = icon.getImage().getScaledInstance(33,33,java.awt.Image.SCALE_FAST );
  118.         ImageIcon back = new ImageIcon(bimg);
  119.                
  120.                 JLabel labelreset = new JLabel(back);
  121.                 labelreset.setBounds(562, 10, 33, 33);
  122.                 contentPane.add(labelreset);
  123.                
  124.                
  125.                 num = new int [12];
  126.                 for(int i = 0 ; i < num.length ; i++){
  127.                         num[i] = (int) (Math.random()*12);
  128.                         for(int j = 0 ; j < i ; j++){
  129.                                 if(num[i] == num[j]){
  130.                                               i--;
  131.                                               break;
  132.                                        
  133.                                  }
  134.                          }
  135.                 }
  136.                 for (int k = 0 ; k < num.length ; k++){
  137.                
  138.                      System.out.println(num[k]);               
  139.                
  140.                 }
  141.                
  142.                 backcard(num);
  143.                
  144.                 for(int i = 0 ; i < larray.length ; i++){
  145.                
  146.                 }
  147.         }

  148.         private ImageIcon  pokercard (int  n){
  149.                
  150.                 poker = new ImageIcon[12];
  151.                 icon = new ImageIcon(PtSC.class.getResource("0.png"));
  152.                 Image andimg = icon.getImage().getScaledInstance(128,128,java.awt.Image.SCALE_FAST );
  153.                 ImageIcon andriod = new ImageIcon(andimg);
  154.                
  155.                         for(int a = 0 ; a < poker.length ; a++){
  156.                
  157.                         poker[a] = andriod;
  158.                
  159.                         }
  160.                         return poker[n];               
  161.                
  162.         }
  163.         
  164.         private void  backcard (int[] num){
  165.         
  166.                 for(int x = 1 ; x <= 6 ; x++){
  167.                
  168.                  icon = new ImageIcon(PtSC.class.getResource(String.format("%d.png", x)));
  169.                 Image img = icon.getImage().getScaledInstance(128,128,java.awt.Image.SCALE_FAST );
  170.                 ImageIcon answercard = new ImageIcon(img);
  171.                
  172.                 answer[num[x-1]] = answercard;
  173.                 answer[num[x+5]] = answercard;
  174.                
  175.             }
  176.         }
  177.         
  178.         private void AddListener(){
  179.         
  180.         for(int i = 0 ; i < larray.length ; i++)
  181.                
  182.                 larray[i].addMouseListener(adpater);
  183.         
  184.         }
  185.         
  186.         
  187.     MouseAdapter adpater = new MouseAdapter(
  188.     private void MouseClicked(MouseEvent e){
  189.    
  190.            
  191.     }
  192.     );
  193. }
複製代碼

TOP

返回列表