📄 tjdialog.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 + -