⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tjdialog.java

📁 研学作品
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.io.*;

//纪录
class record{
	String name;
	int time;

	record(){
		name="匿名";
		time=999;
	}

	record(String name,int time){
		this.name=name;
		this.time=time;
	}
}

public class tjDialog extends JDialog{
	JButton OKButton = new JButton("关闭");
	JButton ResetButton = new JButton("重置");
	JLabel optEasy=new JLabel("简单",JLabel.CENTER);
	JLabel optNorm=new JLabel("中等",JLabel.CENTER);
	JLabel optHard=new JLabel("困难",JLabel.CENTER);
	//三个难度
	record[] recEasy=new record[5];
	record[] recNorm=new record[5];
	record[] recHard=new record[5];
	boolean display;

	tjDialog(int time,int level){
		super();
		display=true;
	    loadRec();
	    if(time>0){
	    	switch (level){
    			case 1:
    				if(time<recEasy[4].time) addRec(time,level);
    				else display=false;
    				break;
    			case 2:
    				if(time<recNorm[4].time) addRec(time,level);
    				else display=false;
    				break;
    			case 3:
    				if(time<recHard[4].time) addRec(time,level);
    				else display=false;
    				break;
			}
		saveRec();
	    }
		this.setTitle("扫雷英雄榜");
		this.setModal(true);
      	this.setLocation(300,300);
      	JPanel showPanel= new JPanel();
      	JPanel orePanel= new JPanel();
      	JPanel recEasyPanel=new JPanel(new GridLayout(5,1));
      	JPanel recNormPanel=new JPanel(new GridLayout(5,1));
      	JPanel recHardPanel=new JPanel(new GridLayout(5,1));
      	ActionListener OK_Press=new ActionListener(){
      		public void actionPerformed(ActionEvent e){
      			dispose();
      		}
      	};
      	OKButton.addActionListener(OK_Press);
      	ActionListener Reset_Press=new ActionListener(){
      		public void actionPerformed(ActionEvent e){
      			for (int i = 0; i<5; i++){
					recEasy[i]=new record();
					recNorm[i]=new record();
					recHard[i]=new record();
				}
      			saveRec();
      			dispose();
      		}
      	};
      	ResetButton.addActionListener(Reset_Press);
      	showPanel.setLayout(new GridLayout(1,3));
	    showPanel.add(optEasy,BorderLayout.WEST);
	    showPanel.add(optNorm,BorderLayout.CENTER);
	    showPanel.add(optHard,BorderLayout.EAST);
	    for(int i=0;i<5;i++){
	    	recEasyPanel.add(new JLabel("No."+(i+1)+"    "+recEasy[i].name+"    "+recEasy[i].time+"秒"));
	    	recNormPanel.add(new JLabel("No."+(i+1)+"    "+recNorm[i].name+"    "+recNorm[i].time+"秒"));
	    	recHardPanel.add(new JLabel("No."+(i+1)+"    "+recHard[i].name+"    "+recHard[i].time+"秒"));
	    }

	    orePanel.add(ResetButton);
	    orePanel.add(OKButton);

		Container dialogContentPane = getContentPane();
		dialogContentPane.setLayout(new BorderLayout(20,10));
		dialogContentPane.add("North",showPanel);
		dialogContentPane.add("West",recEasyPanel);
		dialogContentPane.add("Center",recNormPanel);
		dialogContentPane.add("East",recHardPanel);
		dialogContentPane.add("South",orePanel);
		this.pack();
		if(display)	this.setVisible(true);
		else	dispose();
    }//构造方法tjDialog()声明结束

    private void loadRec(){
    	DataInputStream in;
    	String name;
    	int time;
    	try {
    		in=new DataInputStream(new FileInputStream("rank.dat"));
			for (int i = 0; i<5; i++){
				name=in.readUTF();
				time=in.readInt();
				recEasy[i]=new record(name,time);
				name=in.readUTF();
				time=in.readInt();
				recNorm[i]=new record(name,time);
				name=in.readUTF();
				time=in.readInt();
				recHard[i]=new record(name,time);
			}
			in.close();
		}
		catch (Exception ex) {
			for (int i = 0; i<5; i++){
				recEasy[i]=new record();
				recNorm[i]=new record();
				recHard[i]=new record();
			}
		}
    }

    private void saveRec(){
    	try{
    		DataOutputStream out=new DataOutputStream(new FileOutputStream("rank.dat"));
    		for (int i = 0; i<5; i++){
				out.writeUTF(recEasy[i].name);
				out.writeInt(recEasy[i].time);
				out.writeUTF(recNorm[i].name);
				out.writeInt(recNorm[i].time);
				out.writeUTF(recHard[i].name);
				out.writeInt(recHard[i].time);
			}
			out.close();
    	}
		catch(Exception ex){}
    }

    public void addRec(int time,int level){
    	String name=JOptionPane.showInputDialog(null,"恭喜您破了此难度的纪录,请输入大名:","新纪录",JOptionPane.INFORMATION_MESSAGE);
    	if(name.length()==0) name="匿名";
    	switch(level){
    		case 1:
    			if(time<recEasy[0].time){
    				for(int j=3;j>0;j--)	recEasy[j+1]=recEasy[j];
    				recEasy[0]=new record(name,time);
    			}
    			else
    				for(int i=0;i<4;i++){
    					if(recEasy[i].time<=time && recEasy[i+1].time>time){
    						for(int j=3;j>i;j--)	recEasy[j+1]=recEasy[j];
    						recEasy[i+1]=new record(name,time);
    						break;
    					}
    				}
    			break;
    		case 2:
    			if(time<recNorm[0].time){
    				for(int j=3;j>0;j--)	recNorm[j+1]=recNorm[j];
    				recNorm[0]=new record(name,time);
    			}
    			else
    				for(int i=0;i<4;i++){
    					if(recNorm[i].time<=time && recNorm[i+1].time>time){
    						for(int j=3;j>i;j--)	recNorm[j+1]=recNorm[j];
    						recNorm[i+1]=new record(name,time);
    						break;
    					}
    				}
    			break;
    		case 3:
    			if(time<recHard[0].time){
    				for(int j=3;j>0;j--)	recHard[j+1]=recHard[j];
    				recHard[0]=new record(name,time);
    			}
    			else
    				for(int i=0;i<4;i++){
    					for(int j=3;j>i;j--)	recHard[j+1]=recHard[j];
    					if(recHard[i].time<=time && recHard[i+1].time>time){
    						recHard[i+1]=new record(name,time);
    						break;
    					}
    				}
    	}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -