Java打地鼠最高分设置


package com.briup.demo.xiangmu;

import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.net.URI;
import java.net.URL;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

/**
 * 打地鼠
 * 
 * @author dell
 *
 */
public class PlayMouse implements ActionListener{
    File f;
    URI uri;
       URL url; 
   // Music(){
   //     bgMusic();
   //  }
   public void Music(){  
     try {      
         f = new File("D:\\java\\CoreJava\\src\\Luv Letter.wav"); 
         uri = f.toURI();
         url = uri.toURL();  //解析地址
         AudioClip aau; 
         aau = Applet.newAudioClip(url);
         aau.loop();  //循环播放
     } catch (Exception e) 
     { e.printStackTrace();
     } 
   }
    //构建容器
    private JFrame jframe;
    //构建面板  
    private JPanel northPanel,centerPanel;
    //构建下拉框,选择游戏等级
    private JComboBox<String> box;
    //构建四个标签,分别用来显示时间和分数
    private JLabel timeLable,timeValue,centLable,centValue;
    //构建开始按钮
    private JButton startBtn;
    //构建JButton数组,保存九个按钮
    private JButton[] btns;
    //构建老鼠洞、老鼠图片
    private ImageIcon mouseImg,holeImg;
    //构建定时器控制老鼠出现的频率和时间定时器
    private Timer mouseTimer,timer;
    //记录老鼠上一次出现的位置
    private int lastIndex;
    //设置游戏等级 高级--100  中级-400   低级-900
    private int level;
    //判断是否加过分 
    private boolean flag;
    
    //初始化JFrame
    public PlayMouse() {
        //1.创建容器
        jframe = new JFrame("打地鼠");
        //2.创建面板
        northPanel = new JPanel();
        centerPanel = new JPanel();
        //3.面板设置布局管理器
        centerPanel.setLayout(new GridLayout(3, 3));
        //4.创建组件
        box = new JComboBox<>(new String[] {"初级","中级","高级"});
        //下拉框绑定点击事件
        box.addActionListener(this);
        timeLable = new JLabel("time:");
        timeValue = new JLabel("10");
        centLable = new JLabel("cent:");
        centValue = new JLabel("0");
        startBtn = new JButton("开始");
        level = 900;
        //创建老鼠频率定时器
        mouseTimer = new Timer(level,this);
        //创建时间倒数定时器
        timer = new Timer(1000,this);
        //标识此时老鼠未加分
        flag = false;
        //点击开始按钮,游戏开始
        startBtn.addActionListener(this);
        btns = new JButton[9];
        mouseImg = new ImageIcon("src/mouse.png");
        holeImg = new ImageIcon("src/hole.png");
        for(int i=0;i<btns.length;i++) {
            btns[i] = new JButton();
            //给按钮添加背景图为老鼠洞
            btns[i].setIcon(holeImg);
            //禁用九个按钮
            btns[i].setEnabled(false);
            //创建好的九个按钮添加到centerPanel
            centerPanel.add(btns[i]);
            //给按钮绑定点击事件
            btns[i].addActionListener(this);
        }
        //5.添加组件到面板
        northPanel.add(box);
        northPanel.add(timeLable);
        northPanel.add(timeValue);
        northPanel.add(centLable);
        northPanel.add(centValue);
        northPanel.add(startBtn);
        //6.添加面板到容器
        jframe.add(northPanel,BorderLayout.NORTH);
        jframe.add(centerPanel,BorderLayout.CENTER);
        //7.设置容器的大小
        jframe.setSize(400,600);
        //8.设置容器窗口不可变
        jframe.setResizable(false);
        //9.设置容器居中
        jframe.setLocationRelativeTo(null);
        //10.设置容器的可见性
        jframe.setVisible(true);
        //11.设置关闭窗口
        jframe.setDefaultCloseOperation(3);
    }
    
    public static void main(String[] args) {
        new PlayMouse();
        new Music();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        //获取事件源
        Object obj = e.getSource();
        //用户点击开始按钮
        if(obj == startBtn) {
            //清除上一局老鼠
            btns[lastIndex].setIcon(holeImg);
            //随机产生新老鼠
            Random random = new Random();
            int index = random.nextInt(btns.length);
            //新老鼠
            flag = false;
            //记录第一次老鼠出现的位置
            lastIndex = index;
            btns[index].setIcon(mouseImg);
            //启动老鼠定时器
            mouseTimer.start();
            //启动时间定时器
            timer.start();
            //重置游戏时长以及分数
            timeValue.setText("10");
            centValue.setText("0");
            //禁用开始按钮
            startBtn.setEnabled(false);
            //禁用级别选项的下拉框
            box.setEnabled(false);
            //启用九个按钮
            setBtnsEnable(true);
        }else if(obj == mouseTimer) {
            //定时器开启 
            //将上一个老鼠出现的位置设置为老鼠洞
            btns[lastIndex].setIcon(holeImg);
            //每间隔1s随机产生一个老鼠
            Random random = new Random();
            int index = random.nextInt(btns.length);
            //新老鼠
            flag = false;
            //记录上一次老鼠出现的位置
            lastIndex = index;
            //将随机的洞设置为老鼠
            btns[index].setIcon(mouseImg);
        }else if(obj == timer) {
            //开始时间定时器后执行
            //获取时间值
            int num = Integer.parseInt(timeValue.getText());
            //判断时间值
            if(num>0) {
                //时间值大于0  时间倒数
                num--;
                timeValue.setText(num+"");
            }else {
                //时间值小于等于0 游戏停止
                //关闭老鼠出现的定时器
                mouseTimer.stop();
                //关闭时间倒数定时器
                timer.stop();
                //启用开始按钮
                startBtn.setEnabled(true);
                //启用级别的下拉框
                box.setEnabled(true);
                //禁用九个按钮
                setBtnsEnable(false);
            }
        }else if(obj == box) {
            //获取选项值
            String item = (String) box.getSelectedItem();
            //判断级别--老鼠出现频率定时器
            if("高级".equals(item)) {
                level = 100;
            }else if("中级".equals(item)) {
                level = 400;
            }else if("初级".equals(item)) {
                level = 900;
            }
            mouseTimer = new Timer(level, this);
        }else {
            //点击九个按钮
            for(int i=0;i<btns.length;i++) {
                //判断是否点击了有老鼠的按钮并且点击老鼠未加过分flag=false
                if(obj == btns[i] && btns[i].getIcon()==mouseImg&&!flag) {
                    //获取分数值
                    int score = Integer.parseInt(centValue.getText());
                    //打中老鼠后加一分
                    score++;
                    //表示该老鼠已经加过分
                    flag = true;
                    centValue.setText(score+"");
                }
                //鼠标的图标设置成锤子的图片
                Toolkit kit = Toolkit.getDefaultToolkit();
                Image image = kit.getImage("src/hammer1.png");
                Cursor cursor = kit.createCustomCursor(image, new Point(10, 10), "stick");
                //jframe.setCursor(cursor);
                centerPanel.setCursor(cursor);
            }
        }
    }
    
    //开启或禁用九个按钮
    public void setBtnsEnable(boolean b) {
        for(int i=0;i<btns.length;i++) {
            btns[i].setEnabled(b);
        }
    }
}

在这个代码中插入最高分板块怎么设置?

那你首先就要记录分数,然后在看你是要再数据库中做永久记录,还是在运行时当做一次性记录(相当于每次运行程序时,程序的记录是空的).
然后在比较最大就行