一个找不同小游戏(游戏图片需自找)

//DifferFrame.java

package gg;

 

importjava.awt.Font;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

 

importjavax.swing.Icon;

importjavax.swing.ImageIcon;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

//声明DifferFrame类继承JFrame类并实现接口

public class DifferFrame extends JFrame implements ActionListener{

   JPanel pan;                          //声明面板对象

   JButton btnBegin,btnCancel;          //声明开始取消按钮

   JLabel lab;                          //声明一个标签

   Font font;                           //声明字体对象

   JLabel lab1;              

   Icon icon=new ImageIcon("c.gif");   //创建Icon对象引用图片

   DifferFrame(String s){               //构造方法

      super(s);                        //调用父类构造方法

      this.setSize(500,400);           //设置框架大小

      this.setLocationRelativeTo(null);     //将框架居中显示

      pan=new JPanel();                //创建面板对象

      this.setContentPane(pan);       //将面板放在框架上

      lab=new JLabel(icon);           //创建带有图片的标签

      pan.add(lab);                    //将标签放在面板上

     

      lab=new JLabel("游戏开始?");      //创建标签对象

      //设置当前字体,加粗,25

      font=new Font("游戏开始?",Font.BOLD,25);

      lab.setFont(font);               //将字体应用于标签

      pan.add(lab);                    //将标签放在面板上显示

      btnBegin=new JButton("开始");      //创建带有文字的按钮

      //设置当前字体,加粗,20

      font=new Font("开始",Font.BOLD,20);

      btnBegin.setFont(font);          //将字体应用于按钮

      btnCancel=new JButton("取消");

      font=new Font("取消",Font.BOLD,20);

      btnCancel.setFont(font);

      //给按钮增加事件监听

      btnBegin.addActionListener(this);

      btnCancel.addActionListener(this);

      pan.add(btnBegin);               //将按钮放在面板上

      pan.add(btnCancel);

      //设置用户单击框架右上角关闭按钮时执行的操作为退出应用程序

      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      this.setVisible(true);          //设置窗口可见性

     

   }

   //实现ActionListener接口中的actionPerformed方法

   public void actionPerformed(ActionEvent e){

      if(e.getSource()==btnBegin){       //判断事件源

         setVisible(false);            //将当前窗口设置为不可见

         //创建开始游戏框架

         Frame1 frm=new Frame1("找不同小游戏");

      }

      if(e.getSource()==btnCancel){

         setVisible(false);

         //弹出游戏结束对话框

         JOptionPane.showMessageDialog(null,

                "游戏结束",               //对话框内显示文字的字符串

                "找不同小游戏",           //对话框标题栏文字的字符串

                JOptionPane.ERROR_MESSAGE);

      }

   }

}

//声明Frame1类继承JFrame类并实现接口

class Frame1 extends JFrame implements ActionListener{

   JPanel pan1;

   JLabel lab1,lab2;

   JTextField tf;

   JButton btnOK;

   Icon icon;

   Font font;

   static int i=0,n=0;                   //声明一个静态变量in

   //使用String数组存放图标名称

   String a[]={"01.jpg","02.jpg","03.png","04.png","05.png","06.jpg","07.jpg","08.png","09.png","10.jpg"};

   //使用String数组存放答案

   String b[]={"6","6","5","5","4","5","9","5","4","6"};

   Frame1(String s){                    //构造方法

      super(s);

      this.setSize(500,400);

      this.setLocationRelativeTo(null);

      pan1=new JPanel();

      this.setContentPane(pan1);

     

      lab1=new JLabel("找一找下图中有几处不同?");

      font=new Font("找一找下图中有几处不同?",Font.BOLD,22);

      lab1.setFont(font);

      icon=new ImageIcon(a[i]);

      lab2=new JLabel(icon);

      tf=new JTextField(10);             //构造一个列数为10的空文本框

      btnOK=new JButton("OK");

      btnOK.addActionListener(this);

     

      pan1.add(lab1);

      pan1.add(lab2);

      pan1.add(tf);

      pan1.add(btnOK);

      setVisible(true);

      }

   //实现ActionListener接口中的actionPerformed方法

   public void actionPerformed(ActionEvent e){

      if(e.getSource()==btnOK){

         //判断从文本框中获取的答案是否和电脑所给答案相同

         if(tf.getText().equals(b[i])){          

            if(i<9){

            setVisible(false);

            i=i+1;

            Frame1 frm=new Frame1("找不同小游戏");

            }

            else{

                //弹出过关对话框

                if(n==0){

                   JOptionPane.showMessageDialog(null,

                      "恭喜你一次性通关,等级为A",

                      "找不同小游戏",

                      JOptionPane.ERROR_MESSAGE);

                   }

                if(n>0&&n<=3){

                   JOptionPane.showMessageDialog(null,

                         "恭喜你通关了,就答错了两三次,等级为B",

                         "找不同小游戏",

                         JOptionPane.ERROR_MESSAGE);

                   }

               if(n>4){

                   JOptionPane.showMessageDialog(null,

                         "过关不是很顺利呀,等级为C",

                         "找不同小游戏",

                         JOptionPane.ERROR_MESSAGE);

                }

           

         }

            }

      else{

         JOptionPane.showMessageDialog(null,

                "还有几处没找到,再找找看吧",

                "找不同小游戏",

                JOptionPane.ERROR_MESSAGE);

         n++;

      }

         }

      }

}

//DifferDemo.java

package gg;

public class DifferDemo {

   public static void main(String[] args) {

      // TODOAuto-generated method stub

      DifferFrame dif=new DifferFrame("找不同小游戏");

   }

}

你可能感兴趣的:(Swing)