//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; //声明一个静态变量i和n
//使用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("找不同小游戏");
}
}