Board logo

標題: 翻牌遊戲 (一) [打印本頁]

作者: 周政輝    時間: 2018-4-14 10:15     標題: 翻牌遊戲 (一)

本帖最後由 周政輝 於 2018-4-14 12:04 編輯

試完成一翻牌遊戲之雛形, 執行畫面如下, 該視窗程式需做到:

1. 六組各兩張的圖片, 能隨機出現在被點擊的按鈕上.
2. 當點擊右下角的回復鈕, 所有圖片皆回復原狀, 並重新洗牌.

[attach]3845[/attach]

[attach]3846[/attach]

[attach]3847[/attach]

素材: pic.zip
  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. public class Main extends JFrame {

  12.         private JPanel contentPane;

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

  28.         /**
  29.          * Create the frame.
  30.          */
  31.         JLabel[] pokers = new JLabel[12];
  32.         ImageIcon[] randomcard = new ImageIcon[12];
  33.         int randomnum[]=new int[12];
  34.         public Main() {
  35.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  36.                 setBounds(100, 100, 662, 499);
  37.                
  38.                 contentPane = new JPanel();
  39.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  40.                 setContentPane(contentPane);
  41.                 contentPane.setLayout(null);
  42.                
  43.                 JLabel Poker_1 = new JLabel("New label");
  44.                 Poker_1.setBounds(10, 10, 128, 128);
  45.                 contentPane.add(Poker_1);
  46.                 pokers[0] = Poker_1;
  47.        
  48.                 JLabel Poker_2 = new JLabel("New label");
  49.                 Poker_2.setBounds(159, 10, 128, 128);
  50.                 contentPane.add(Poker_2);
  51.                 pokers[1] = Poker_2;
  52.                
  53.                 JLabel Poker_3 = new JLabel("New label");
  54.                 Poker_3.setBounds(304, 10, 128, 128);
  55.                 contentPane.add(Poker_3);
  56.                 pokers[2] = Poker_3;
  57.                
  58.                 JLabel Poker_4 = new JLabel("New label");
  59.                 Poker_4.setBounds(453, 10, 128, 128);
  60.                 contentPane.add(Poker_4);
  61.                 pokers[3] = Poker_4;
  62.                
  63.                 JLabel Poker_5 = new JLabel("New label");
  64.                 Poker_5.setBounds(10, 155, 128, 128);
  65.                 contentPane.add(Poker_5);
  66.                 pokers[4] = Poker_5;
  67.                
  68.                 JLabel Poker_6 = new JLabel("New label");
  69.                 Poker_6.setBounds(159, 155, 128, 128);
  70.                 contentPane.add(Poker_6);
  71.                 pokers[5] = Poker_6;

  72.                 JLabel Poker_7 = new JLabel("New label");
  73.                 Poker_7.setBounds(304, 155, 128, 128);
  74.                 contentPane.add(Poker_7);
  75.                 pokers[6] = Poker_7;
  76.                
  77.                 JLabel Poker_8 = new JLabel("New label");
  78.                 Poker_8.setBounds(453, 155, 128, 128);
  79.                 contentPane.add(Poker_8);
  80.                 pokers[7] = Poker_8;
  81.                
  82.                 JLabel Poker_9 = new JLabel("New label");
  83.                 Poker_9.setBounds(10, 293, 128, 128);
  84.                 contentPane.add(Poker_9);
  85.                 pokers[8] = Poker_9;
  86.                
  87.                 JLabel Poker_10 = new JLabel("New label");
  88.                 Poker_10.setBounds(159, 293, 128, 128);
  89.                 contentPane.add(Poker_10);
  90.                 pokers[9] = Poker_10;
  91.                
  92.                 JLabel Poker_11 = new JLabel("New label");
  93.                 Poker_11.setBounds(304, 293, 128, 128);
  94.                 contentPane.add(Poker_11);
  95.                 pokers[10] = Poker_11;

  96.                 JLabel Poker_12 = new JLabel("New label");
  97.                 Poker_12.setBounds(453, 293, 128, 128);
  98.                 contentPane.add(Poker_12);
  99.                 pokers[11] = Poker_12;
  100.                
  101.                
  102.                 InitializeImg(pokers);
  103.                 rc();
  104.                 JLabel Reset = new JLabel("New label");
  105.                 Reset.setIcon(new ImageIcon(Main.class.getResource("/tw/kuas/edu/tw/pic/return.png")));
  106.                 Reset.setBounds(603, 418, 33, 33);
  107.                 contentPane.add(Reset);
  108.                 for(int i=0;i<12;i++) {
  109.                         System.out.println(randomnum[i]);
  110.                 }
  111.                
  112.         }
  113.        
  114.         private ImageIcon InitImg() {
  115.                 ImageIcon icon = new ImageIcon(Main.class.getResource("pic/0.png"));
  116.         Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  117.         ImageIcon newIcon = new ImageIcon(img);
  118.         return newIcon;
  119.         }
  120.        
  121.         private void InitializeImg(JLabel[] pokers) {
  122.                 for(int i=0;i<pokers.length;i++) {
  123.                         ImageIcon icon = new ImageIcon(Main.class.getResource("pic/0.png"));
  124.                 Image img = icon.getImage().getScaledInstance(128, 128,  java.awt.Image.SCALE_FAST );
  125.                 ImageIcon newIcon = new ImageIcon(img);
  126.                 pokers[i].setIcon(newIcon);
  127.                 }
  128.         }
  129.        
  130.          private void rc() {
  131.        for(int i=0; i<12; i++) {
  132.        randomnum[i]=(int)(Math.random()*12);    //0~11
  133.        for(int j=0; j<i; j++) {
  134.           if(randomnum[i]==randomnum[j]) {
  135.             i--;
  136.             break;
  137.            }
  138.          }
  139.        }
  140.      }
  141.      

  142.        

  143. }
複製代碼

作者: 黃茂勛    時間: 2018-4-14 11:56

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

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

  9. public class Main extends JFrame {

  10.         private JPanel contentPane;
  11.     public JLabel lb[] = new JLabel[12];
  12.     public ImageIcon[] card = new ImageIcon[12];
  13.        
  14.         public static void main(String[] args) {
  15.                 EventQueue.invokeLater(new Runnable() {
  16.                         public void run() {
  17.                                 try {
  18.                                         Main frame = new Main();
  19.                                         frame.setVisible(true);
  20.                                         frame.setTitle("翻牌遊戲");
  21.                                         ImageIcon icon = new ImageIcon(Main.class.getResource("star.png"));
  22.                                     Image image = icon.getImage();
  23.                                         frame.setIconImage(image);
  24.                                 } catch (Exception e) {
  25.                                         e.printStackTrace();
  26.                                 }
  27.                         }
  28.                 });
  29.         }

  30.    
  31.         public Main() {
  32.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  33.                 setBounds(100, 100, 589, 518);
  34.                 contentPane = new JPanel();
  35.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  36.                 setContentPane(contentPane);
  37.                 contentPane.setLayout(null);
  38.                
  39.                 JLabel lb1 = new JLabel("lb1");
  40.                 lb1.setBounds(10, 20, 128, 128);
  41.                 contentPane.add(lb1);
  42.                 //lb1.setIcon(entericon(0));
  43.                 lb[0] = lb1;
  44.                
  45.                 JLabel lb2 = new JLabel("lb2");
  46.                 lb2.setBounds(148, 20, 128, 128);
  47.                 contentPane.add(lb2);
  48.                 //lb2.setIcon(entericon(0));
  49.                 lb[1] = lb2;
  50.                
  51.                 JLabel lb3 = new JLabel("lb3");
  52.                 lb3.setBounds(288, 20, 128, 128);
  53.                 contentPane.add(lb3);
  54.                 //lb3.setIcon(entericon(0));
  55.                 lb[2] = lb3;
  56.                
  57.                 JLabel lb4 = new JLabel("lb4");
  58.                 lb4.setBounds(426, 20, 128, 128);
  59.                 contentPane.add(lb4);
  60.                 //lb4.setIcon(entericon(0));
  61.                 lb[3] = lb4;               
  62.                
  63.                 JLabel lb5 = new JLabel("lb5");
  64.                 lb5.setBounds(10, 155, 128, 128);
  65.                 contentPane.add(lb5);
  66.                 //lb5.setIcon(entericon(0));
  67.                 lb[4] = lb5;
  68.                
  69.                 JLabel lb6 = new JLabel("lb6");
  70.                 lb6.setBounds(148, 155, 128, 128);
  71.                 contentPane.add(lb6);
  72.                 //lb6.setIcon(entericon(0));
  73.                 lb[5] = lb6;
  74.                
  75.                 JLabel lb7 = new JLabel("lb7");
  76.                 lb7.setBounds(288, 155, 128, 128);
  77.                 contentPane.add(lb7);
  78.                 //lb7.setIcon(entericon(0));
  79.                 lb[6] = lb7;
  80.                
  81.                 JLabel lb8 = new JLabel("lb8");
  82.                 lb8.setBounds(426, 155, 128, 128);
  83.                 contentPane.add(lb8);
  84.                 //lb8.setIcon(entericon(0));
  85.                 lb[7] = lb8;
  86.                
  87.                 JLabel lb9 = new JLabel("lb9");
  88.                 lb9.setBounds(10, 293, 128, 128);
  89.                 contentPane.add(lb9);
  90.                 //lb9.setIcon(entericon(0));
  91.                 lb[8] = lb9;
  92.                
  93.                 JLabel lb10 = new JLabel("lb10");
  94.                 lb10.setBounds(148, 293, 128, 128);
  95.                 contentPane.add(lb10);
  96.                 //lb10.setIcon(entericon(0));
  97.                 lb[9] = lb10;
  98.        
  99.                 JLabel lb11 = new JLabel("lb11");
  100.                 lb11.setBounds(288, 293, 128, 128);
  101.                 contentPane.add(lb11);
  102.                 //lb11.setIcon(entericon(0));
  103.                 lb[10] = lb11;
  104.                
  105.                 JLabel lb12 = new JLabel("lb12");
  106.                 lb12.setBounds(426, 293, 128, 128);
  107.                 contentPane.add(lb12);
  108.                 //lb12.setIcon(entericon(0));
  109.                 lb[11] = lb12;
  110.                
  111.                 JLabel lb13 = new JLabel("lb13");
  112.                 lb13.setBounds(521, 431, 33, 33);
  113.                 contentPane.add(lb13);
  114.                 lb13.setIcon(entericon(7));
  115.                
  116.                 entericon_2(lb);               
  117.         }
  118.         public ImageIcon entericon(int n)  
  119.         {
  120.                 ImageIcon icon = new ImageIcon(Main.class.getResource(n+".png"));
  121.             return icon;
  122.         }
  123.         public void entericon_2(JLabel[] lb)
  124.         {
  125.                 for(int i=0; i<lb.length; i++)
  126.                 {
  127.                         ImageIcon icon = new ImageIcon(Main.class.getResource(String.format("%d.%s", 0,"png")));
  128.                         lb[i].setIcon(icon);
  129.                         lb[i].setSize(128, 128);
  130.                 }
  131.         }
  132.         public void randomcard(ImageIcon card[])
  133.         {
  134.                 ImageIcon icon = new ImageIcon(Main.class.getResource(String.format("%d.%s", Math.random()*12,"png")));
  135.                 Image image = icon.getImage().getScaledInstance(128, 128, java.awt.Image.SCALE_FAST);
  136.                 ImageIcon newicon = new ImageIcon(image);
  137.                 for(int i=0; i<card.length; i++)
  138.                 {
  139.                        
  140.                 }
  141.         }
  142. }
複製代碼

作者: 蔡庭豪    時間: 2018-4-14 11:56

  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 javax.swing.JLabel;

  10. public class PtSC extends JFrame {

  11.         private JPanel contentPane;
  12.         private static ImageIcon icon;
  13.         private ImageIcon randomcard[] = new ImageIcon [12];

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

  29.         /**
  30.          * Create the frame.
  31.          */
  32.         public PtSC() {
  33.                 icon = new ImageIcon(PtSC.class.getResource("star.png"));
  34.         Image imgicon = icon.getImage().getScaledInstance(128,128,java.awt.Image.SCALE_FAST );
  35.       
  36.         
  37.         this.setIconImage(imgicon);
  38.              
  39.                 icon = new ImageIcon(PtSC.class.getResource("0.png"));
  40.         Image img = icon.getImage().getScaledInstance(128,128,java.awt.Image.SCALE_FAST );
  41.         ImageIcon andriod = new ImageIcon(img);
  42.                  
  43.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  44.                 setBounds(100, 100, 620, 462);
  45.                 contentPane = new JPanel();
  46.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  47.                 setContentPane(contentPane);
  48.                 contentPane.setLayout(null);
  49.                
  50.                 JLabel Label_0 = new JLabel(andriod);
  51.                 Label_0.setBounds(10, 10, 128, 128);
  52.                 contentPane.add(Label_0);
  53.                
  54.                 JLabel label_1 = new JLabel(andriod);
  55.                 label_1.setBounds(148, 10, 128, 128);
  56.                 contentPane.add(label_1);
  57.                
  58.                 JLabel label_2 = new JLabel(andriod);
  59.                 label_2.setBounds(286, 10, 128, 128);
  60.                 contentPane.add(label_2);
  61.                
  62.                 JLabel label_3 = new JLabel(andriod);
  63.                 label_3.setBounds(424, 10, 128, 128);
  64.                 contentPane.add(label_3);
  65.                
  66.                 JLabel label_4 = new JLabel(andriod);
  67.                 label_4.setBounds(10, 149, 128, 128);
  68.                 contentPane.add(label_4);
  69.                
  70.                 JLabel label_5 = new JLabel(andriod);
  71.                 label_5.setBounds(148, 149, 128, 128);
  72.                 contentPane.add(label_5);
  73.                
  74.                 JLabel label_6 = new JLabel(andriod);
  75.                 label_6.setBounds(286, 149, 128, 128);
  76.                 contentPane.add(label_6);
  77.                
  78.                 JLabel label_7 = new JLabel(andriod);
  79.                 label_7.setBounds(424, 149, 128, 128);
  80.                 contentPane.add(label_7);
  81.                
  82.                 JLabel label_8 = new JLabel(andriod);
  83.                 label_8.setBounds(10, 286, 128, 128);
  84.                 contentPane.add(label_8);
  85.                
  86.                 JLabel label_9 = new JLabel(andriod);
  87.                 label_9.setBounds(148, 286, 128, 128);
  88.                 contentPane.add(label_9);
  89.                
  90.                 JLabel label_10 = new JLabel(andriod);
  91.                 label_10.setBounds(286, 286, 128, 128);
  92.                 contentPane.add(label_10);
  93.                
  94.                 JLabel label_11 = new JLabel(andriod);
  95.                 label_11.setBounds(424, 286, 128, 128);
  96.                 contentPane.add(label_11);
  97.                
  98.                 icon = new ImageIcon(PtSC.class.getResource("return.png"));
  99.         Image bimg = icon.getImage().getScaledInstance(33,33,java.awt.Image.SCALE_FAST );
  100.         ImageIcon back = new ImageIcon(bimg);
  101.                
  102.                 JLabel labelreset = new JLabel(back);
  103.                 labelreset.setBounds(562, 10, 33, 33);
  104.                 contentPane.add(labelreset);
  105.                
  106.                 randomcard = new ImageIcon[12];
  107.                
  108.         }

  109.         private void  randomputin (ImageIcon[] card){
  110.                
  111.                
  112.                
  113.                
  114.         }
  115. }
複製代碼

作者: 陳泓瑜    時間: 2018-4-14 11:56

本帖最後由 陳泓瑜 於 2018-4-21 10:52 編輯
  1. public class RANDOM
  2. {

  3.         public static void main(String[] args)
  4.         {
  5.                
  6.                 int j[]=new int[12];
  7.                 for(int i=0;i<12;i++)
  8.                 {
  9.                         j[i]=(int)(Math.random()*12);
  10.                         for(int k=0; k<i; k++)
  11.                         {
  12.                                 if(j[i]==j[k])
  13.                                 {
  14.                                         i--;
  15.                                         break;
  16.                                 }       
  17.                         }
  18.                        
  19.                 }
  20.        
  21.                
  22.                
  23.                 for(int m=0; m<=11; m++)
  24.                 {
  25.                         System.out.println(j[m]);
  26.                 }
  27.         }

  28. }
複製代碼
  1. import java.awt.BorderLayout;
  2. import java.awt.EventQueue;
  3. import java.awt.Image;

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


  9. public class FLIP extends JFrame {

  10.         private JPanel contentPane;

  11.         /**
  12.          * Launch the application.
  13.          */
  14.         public static void main(String[] args) {
  15.                 EventQueue.invokeLater(new Runnable() {
  16.                         public void run() {
  17.                                 try {
  18.                                         FLIP frame = new FLIP();
  19.                                         frame.setVisible(true);
  20.                                 } catch (Exception e) {
  21.                                         e.printStackTrace();
  22.                                 }
  23.                         }
  24.                 });
  25.         }

  26.         /**
  27.          * Create the frame.
  28.          */
  29.         public FLIP() {
  30.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  31.                 setBounds(100, 100, 572, 466);
  32.                 contentPane = new JPanel();
  33.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  34.                 setContentPane(contentPane);
  35.                 contentPane.setLayout(null);
  36.                
  37.                 JLabel C1 = new JLabel("");
  38.                 C1.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  39.                 C1.setBounds(10, 10, 128, 128);
  40.                 contentPane.add(C1);
  41.                
  42.                 JLabel C2 = new JLabel("");
  43.                 C2.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  44.                 C2.setBounds(148, 10, 128, 128);
  45.                 contentPane.add(C2);
  46.                
  47.                 JLabel C3 = new JLabel("");
  48.                 C3.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  49.                 C3.setBounds(286, 10, 128, 128);
  50.                 contentPane.add(C3);
  51.                
  52.                 JLabel C4 = new JLabel("");
  53.                 C4.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  54.                 C4.setBounds(424, 10, 128, 128);
  55.                 contentPane.add(C4);
  56.                 //----------------------
  57.                 JLabel C5 = new JLabel("");
  58.                 C5.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  59.                 C5.setBounds(10, 148, 128, 128);
  60.                 contentPane.add(C5);
  61.                
  62.                 JLabel C6 = new JLabel("");
  63.                 C6.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  64.                 C6.setBounds(148, 148, 128, 128);
  65.                 contentPane.add(C6);
  66.                
  67.                 JLabel C7 = new JLabel("");
  68.                 C7.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  69.                 C7.setBounds(286, 148, 128, 128);
  70.                 contentPane.add(C7);
  71.                
  72.                 JLabel C8 = new JLabel("");
  73.                 C8.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  74.                 C8.setBounds(424, 148, 128, 128);
  75.                 contentPane.add(C8);
  76.                 //----------------------
  77.                 JLabel C9 = new JLabel("");
  78.                 C9.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  79.                 C9.setBounds(10, 286, 128, 128);
  80.                 contentPane.add(C9);
  81.                
  82.                 JLabel C10 = new JLabel("");
  83.                 C10.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  84.                 C10.setBounds(148, 286, 128, 128);
  85.                 contentPane.add(C10);
  86.                
  87.                 JLabel C11 = new JLabel("");
  88.                 C11.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  89.                 C11.setBounds(286, 286, 128, 128);
  90.                 contentPane.add(C11);
  91.                
  92.                 JLabel C12 = new JLabel("");
  93.                 C12.setIcon(new ImageIcon("C:\\Users\\student\\Downloads\\pic\\pic\\0.png"));
  94.                 C12.setBounds(424, 286, 128, 128);
  95.                 contentPane.add(C12);
  96.         }

  97. }
複製代碼

作者: 林侑成    時間: 2018-4-14 12:04

  1. package 翻牌;

  2. import java.awt.EventQueue;

  3. import javax.swing.JFrame;
  4. import javax.swing.JLabel;
  5. import java.awt.Toolkit;
  6. import javax.swing.ImageIcon;
  7. import javax.swing.JButton;
  8. import javax.swing.AbstractAction;
  9. import java.awt.event.ActionEvent;
  10. import javax.swing.Action;
  11. import java.awt.event.MouseAdapter;
  12. import java.awt.event.MouseEvent;
  13. public class Asdf {

  14.         private JFrame frame;
  15.         private final Action action = new SwingAction();

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

  31.         /**
  32.          * Create the application.
  33.          */
  34.         public Asdf() {
  35.                 initialize();
  36.         }

  37.         /**
  38.          * Initialize the contents of the frame.
  39.          */
  40.         private void initialize() {
  41.                 frame = new JFrame();
  42.                 frame.setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\student\\Desktop\\pic\\pic\\star.png"));
  43.                 frame.setTitle("\u7FFB\u724C\u904A\u6232");
  44.                 frame.setBounds(100, 100, 609, 504);
  45.                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  46.                 frame.getContentPane().setLayout(null);
  47.                
  48.                 JLabel lblNewLabel = new JLabel("New label");
  49.                 lblNewLabel.addMouseListener(new MouseAdapter() {
  50.                         @Override
  51.                         public void mouseClicked(MouseEvent e) {
  52.                                 lblNewLabel.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\1.png"));
  53.                         }
  54.                 });
  55.                 lblNewLabel.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  56.                 lblNewLabel.setBounds(10, 10, 128, 128);
  57.                 frame.getContentPane().add(lblNewLabel);
  58.                
  59.                 JLabel label = new JLabel("New label");
  60.                 label.addMouseListener(new MouseAdapter() {
  61.                         @Override
  62.                         public void mouseClicked(MouseEvent e) {
  63.                                 label.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\2.png"));
  64.                         }
  65.                 });
  66.                 label.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  67.                 label.setBounds(156, 10, 128, 128);
  68.                 frame.getContentPane().add(label);
  69.                
  70.                 JLabel label_1 = new JLabel("New label");
  71.                 label_1.addMouseListener(new MouseAdapter() {
  72.                         @Override
  73.                         public void mouseClicked(MouseEvent e) {
  74.                                 label_1.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\3.png"));
  75.                         }
  76.                 });
  77.                 label_1.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  78.                 label_1.setBounds(310, 10, 128, 128);
  79.                 frame.getContentPane().add(label_1);
  80.                
  81.                 JLabel label_2 = new JLabel("New label");
  82.                 label_2.addMouseListener(new MouseAdapter() {
  83.                         @Override
  84.                         public void mouseClicked(MouseEvent e) {
  85.                                 label_2.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\4.png"));
  86.                         }
  87.                 });
  88.                 label_2.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  89.                 label_2.setBounds(455, 10, 128, 128);
  90.                 frame.getContentPane().add(label_2);
  91.                
  92.                 JLabel label_3 = new JLabel("New label");
  93.                 label_3.addMouseListener(new MouseAdapter() {
  94.                         @Override
  95.                         public void mouseClicked(MouseEvent e) {
  96.                                 label_3.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\5.png"));
  97.                         }
  98.                 });
  99.                 label_3.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  100.                 label_3.setBounds(10, 149, 128, 128);
  101.                 frame.getContentPane().add(label_3);
  102.                
  103.                 JLabel label_4 = new JLabel("New label");
  104.                 label_4.addMouseListener(new MouseAdapter() {
  105.                         @Override
  106.                         public void mouseClicked(MouseEvent e) {
  107.                                 label_4.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\6.png"));
  108.                         }
  109.                 });
  110.                 label_4.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  111.                 label_4.setBounds(156, 148, 128, 128);
  112.                 frame.getContentPane().add(label_4);
  113.                
  114.                 JLabel label_5 = new JLabel("New label");
  115.                 label_5.addMouseListener(new MouseAdapter() {
  116.                         @Override
  117.                         public void mouseClicked(MouseEvent e) {
  118.                                 label_5.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\6.png"));
  119.                         }
  120.                 });
  121.                 label_5.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  122.                 label_5.setBounds(310, 148, 128, 128);
  123.                 frame.getContentPane().add(label_5);
  124.                
  125.                 JLabel label_6 = new JLabel("New label");
  126.                 label_6.addMouseListener(new MouseAdapter() {
  127.                         @Override
  128.                         public void mouseClicked(MouseEvent e) {
  129.                                 label_6.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\5.png"));
  130.                         }
  131.                 });
  132.                 label_6.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  133.                 label_6.setBounds(455, 149, 128, 128);
  134.                 frame.getContentPane().add(label_6);
  135.                
  136.                 JLabel label_7 = new JLabel("New label");
  137.                 label_7.addMouseListener(new MouseAdapter() {
  138.                         @Override
  139.                         public void mouseClicked(MouseEvent e) {
  140.                                 label_7.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\4.png"));
  141.                         }
  142.                 });
  143.                 label_7.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  144.                 label_7.setBounds(10, 287, 128, 128);
  145.                 frame.getContentPane().add(label_7);
  146.                
  147.                 JLabel label_8 = new JLabel("New label");
  148.                 label_8.addMouseListener(new MouseAdapter() {
  149.                         @Override
  150.                         public void mouseClicked(MouseEvent e) {
  151.                                 label_8.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\3.png"));
  152.                         }
  153.                 });
  154.                 label_8.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  155.                 label_8.setBounds(156, 287, 128, 128);
  156.                 frame.getContentPane().add(label_8);
  157.                
  158.                 JLabel label_9 = new JLabel("New label");
  159.                 label_9.addMouseListener(new MouseAdapter() {
  160.                         @Override
  161.                         public void mouseClicked(MouseEvent e) {
  162.                                 label_9.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\2.png"));
  163.                         }
  164.                 });
  165.                 label_9.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  166.                 label_9.setBounds(455, 287, 128, 128);
  167.                 frame.getContentPane().add(label_9);
  168.                
  169.                 JLabel label_10 = new JLabel("New label");
  170.                 label_10.addMouseListener(new MouseAdapter() {
  171.                         @Override
  172.                         public void mouseClicked(MouseEvent e) {
  173.                                 label_10.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\1.png"));
  174.                         }
  175.                 });
  176.                 label_10.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\0.png"));
  177.                 label_10.setBounds(310, 286, 128, 128);
  178.                 frame.getContentPane().add(label_10);
  179.                
  180.                 JButton btnNewButton = new JButton("New button");
  181.                 btnNewButton.addMouseListener(new MouseAdapter() {
  182.                         @Override
  183.                         public void mouseClicked(MouseEvent arg0) {
  184.                         }
  185.                 });
  186.                 btnNewButton.setIcon(new ImageIcon("C:\\Users\\student\\Desktop\\pic\\pic\\return.png"));
  187.                 btnNewButton.setBounds(550, 425, 33, 33);
  188.                 frame.getContentPane().add(btnNewButton);
  189.         }
  190.         private class SwingAction extends AbstractAction {
  191.                 public SwingAction() {
  192.                         putValue(NAME, "SwingAction");
  193.                         putValue(SHORT_DESCRIPTION, "Some short description");
  194.                 }
  195.                 public void actionPerformed(ActionEvent e) {
  196.                 }
  197.         }
  198. }
複製代碼

作者: 蔡季樺    時間: 2018-4-20 20:53

  1. import javax.swing.JFrame;
  2. import javax.swing.JButton;
  3. import javax.swing.ImageIcon;
  4. import java.awt.event.MouseAdapter;
  5. import java.awt.event.MouseEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.ActionEvent;

  8. public class main {
  9.         
  10.         private JFrame fm;
  11.         private JButton b[]=new JButton[12];
  12.         private JButton b_r;
  13.         private ImageIcon mm[]=new ImageIcon[12];
  14.         private ImageIcon ic,mm_r,mm_b;
  15.         private int rc[]=new int[12];

  16.         main()
  17.         {
  18.                 rc();
  19.                 ic=new ImageIcon(main.class.getResource("star.png"));
  20.                 mm_b=new ImageIcon(main.class.getResource("0.png"));
  21.                 mm_r=new ImageIcon(main.class.getResource("return.png"));
  22.                
  23.                 for(int i=0; i<6; i++)
  24.                 {
  25.                         mm[i]=new ImageIcon(main.class.getResource((i+1)+".png"));
  26.                     mm[i+6]=new ImageIcon(main.class.getResource((i+1)+".png"));
  27.                 }
  28.                         
  29.                 for(int i=0; i<12; i++)
  30.                         b[i]=new JButton(mm_b);
  31.                 for(int i=0; i<4; i++)
  32.                     b[ i ].setBounds(i*130+12, 10, 128, 128);
  33.                 for(int i=0; i<4; i++)
  34.                     b[ i+4 ].setBounds(i*130+12, 140, 128, 128);
  35.                 for(int i=0; i<4; i++)
  36.                     b[ i+8 ].setBounds(i*130+12, 270, 128, 128);
  37.                 for(int i=0; i<12; i++)
  38.                         b[i].addMouseListener(ma);
  39.                
  40.                 b_r=new JButton(mm_r);
  41.                 b_r.setBounds(497, 407, 33, 33);
  42.                 b_r.addActionListener(al);
  43.                
  44.                 fm=new JFrame("翻牌遊戲");
  45.                 fm.setBounds(100, 100, 548, 480);
  46.                 fm.setIconImage(ic.getImage());
  47.                 fm.setVisible(true);
  48.                 fm.setResizable(false);
  49.                 fm.setLayout(null);
  50.                 fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  51.                 for(int i=0; i<12; i++)
  52.                         fm.add(b[i]);        
  53.                 fm.add(b_r);               
  54.         }
  55.         
  56.         void rc()
  57.         {
  58.                 for(int i=0; i<12; i++)
  59.                 {
  60.                         rc[i]=(int)(Math.random()*12);    //0~11
  61.                         for(int j=0; j<i; j++)
  62.                         {
  63.                                 if(rc[i]==rc[j])
  64.                                 {
  65.                                         i--;
  66.                                         break;
  67.                                 }
  68.                         }
  69.                 }
  70.         }
  71.         
  72.         MouseAdapter ma=new MouseAdapter(){
  73.                 public void mousePressed(MouseEvent e)
  74.                 {
  75.                          for(int i=0; i<12; i++)
  76.                          {
  77.                                  if(e.getSource()==b[i])
  78.                                      b[i].setIcon(mm[rc[i]]);
  79.                          }
  80.                 }
  81.         };
  82.         
  83.         ActionListener al=new ActionListener() {
  84.                 public void actionPerformed(ActionEvent e) {
  85.                         if(e.getSource()==b_r)
  86.                         {
  87.                                 rc();
  88.                                 for(int i=0; i<12; i++)
  89.                                  b[i].setIcon(mm_b);
  90.                         }
  91.                 }
  92.         };        

  93.         public static void main(String[] args) {
  94.                 new main();        
  95.         }
  96. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2