📄 mineframe.java
字号:
jtf3=new JTextField(mineNumber+"");
b1.setFocusPainted(false);
b2.setFocusPainted(false);
b1.setBounds(125,25,60,30);
b2.setBounds(125,65,60,30);
jl1.setBounds(25,25,30,20);
jl2.setBounds(25,50,30,20);
jl3.setBounds(25,75,30,20);
jtf1.setBounds(55,25,50,20);
jtf2.setBounds(55,50,50,20);
jtf3.setBounds(55,75,50,20);
b1.addActionListener(this);
b2.addActionListener(this);
setBounds((int)(p.getX()),(int)(p.getY())+42,220,150);
setResizable(false);
setLayout(null);
add(jl1);add(jl2);add(jl3);add(jtf1);add(jtf2);add(jtf3);add(b1);add(b2);
setVisible(true);
}
/**
*选择自定义菜单项时触发的事件
*/
public void actionPerformed(ActionEvent e)
{
Object obj=e.getSource();
boolean ExceBool=true;
JButton bb=(JButton)obj;
if(bb==b1)
{
try
{
rows=Integer.parseInt(jtf1.getText().trim());
cols=Integer.parseInt(jtf2.getText().trim());
mineNumber=Integer.parseInt(jtf3.getText().trim());
}
catch(Exception err)
{
if(JiBei==0){new MineFrame(rows,cols,mineNumber);ExceBool=false;}
if(JiBei==1){new MineFrame(10,9,9);ExceBool=false;}
if(JiBei==2){new MineFrame(40,16,16);ExceBool=false;}
if(JiBei==3){new MineFrame(99,16,30);ExceBool=false;}
}
if(rows<9){rows=9;}
if(cols<9){cols=9;}
if(rows>=24){rows = 24;}
if(cols>=30){cols = 30;}
if(mineNumber<10){mineNumber=10;}
if(mineNumber>=(rows*cols)){mineNumber=(rows*cols)-10;}
if(mineNumber>99){mineNumber=99;}
if(ExceBool)
{
new MineFrame(mineNumber,rows,cols);
}
MineFrame.this.dispose();
}
if(bb==b2)
{
ZDYItem.setState(false);
dispose();
}
}
}
/**********************
* 破记录时,弹出的窗口
*/
class XMwindow extends JWindow implements ActionListener
{
JTextField XMjtf=new JTextField("佚名");
JButton btn=new JButton(" 确 定 ");
JPanel pe=new JPanel();
JLabel lab;
JLabel lab1=new JLabel(" 请留下你的大名");
String SJStr="你已经破了初级记录";
String ZJStr="你已经破了中级记录";
String GJStr="你已经破了高级记录";
public XMwindow(){}
public XMwindow(Frame owner)
{
super(owner);
if(JiBei==1)lab=new JLabel(SJStr);
if(JiBei==2)lab=new JLabel(ZJStr);
if(JiBei==3)lab=new JLabel(GJStr);
p=MineFrame.this.getLocation();
setResizable(false);
setBounds((int)(p.getX()),(int)(p.getY())+80,170,180);
lab.setBounds(30,0,150,30);
lab1.setBounds(30,15,150,30);
btn.setBounds(40,100,90,25);
XMjtf.setBounds(20,60,140,25);
btn.setFocusPainted(false);
btn.addActionListener(this);
pe.setLayout(null);
pe.add(lab);
pe.add(lab1);
pe.add(XMjtf);
pe.add(btn);
Container con=getContentPane();
con.add(pe);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Object obj=e.getSource();
JButton bb=(JButton)obj;
if(bb==btn)
{
YXName=XMjtf.getText().trim();
if(JiBei==1)
{
XYBlb[9].setText(YXName);
XYBlb[3].setText(finishtime+"");
}
if(JiBei==2)
{
XYBlb[10].setText(YXName);
XYBlb[5].setText(finishtime+"");
}
if(JiBei==3)
{
XYBlb[11].setText(YXName);
XYBlb[7].setText(finishtime+"");
}
dispose();
new XYBDialog(MineFrame.this,"扫雷英雄榜", true);
}
}
}
/**
*扫雷英雄榜
*/
class XYBDialog extends JDialog implements ActionListener
{
JButton []btn=new JButton[2];
String []str2={"重新记分"," 确 定 "};
public XYBDialog(){}
public XYBDialog(Frame owner, String title, boolean modal)
{
super(owner,title,modal);
p=MineFrame.this.getLocation();
setResizable(false);
setBounds((int)(p.getX()),(int)(p.getY())+42,250,160);
setLayout(null);
for(int i=0;i<btn.length;i++)
{
btn[i]=new JButton(str2[i]);
btn[i].setMargin(new Insets(0,0,0,0));
btn[i].setFocusPainted(false);
btn[i].addActionListener(this);
}
btn[0].setBounds(35,90,70,25);
btn[1].setBounds(130,90,70,25);
XYBlb[0].setBounds(35,20,30,20);
XYBlb[1].setBounds(35,40,30,20);
XYBlb[2].setBounds(35,60,30,20);
XYBlb[3].setBounds(75,20,30,20); //999
XYBlb[4].setBounds(95,20,20,20);
XYBlb[5].setBounds(75,40,30,20); //999
XYBlb[6].setBounds(95,40,20,20);
XYBlb[7].setBounds(75,60,30,20); //999
XYBlb[8].setBounds(95,60,20,20);
XYBlb[9].setBounds(150,20,100,20);
XYBlb[10].setBounds(150,40,100,20);
XYBlb[11].setBounds(150,60,100,20);
add(XYBlb[0]);add(XYBlb[1]);add(XYBlb[2]);add(XYBlb[3]);add(XYBlb[4]);add(XYBlb[5]);
add(XYBlb[6]);add(XYBlb[7]);add(XYBlb[8]);add(XYBlb[9]);add(XYBlb[10]);add(XYBlb[11]);
add(btn[0]);add(btn[1]);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Object obj=e.getSource();
JButton bb=(JButton)obj;
if(bb==btn[0])
{
XYBlb[3].setText("999");XYBlb[4].setText("秒");XYBlb[5].setText("999");XYBlb[6].setText("秒");
XYBlb[7].setText("999");XYBlb[8].setText("秒");XYBlb[9].setText("佚名");
XYBlb[10].setText("佚名");XYBlb[11].setText("佚名");
}
if(bb==btn[1])
{
s1=XYBlb[3].getText().trim();s2=XYBlb[5].getText().trim();s3=XYBlb[7].getText().trim();
s4=XYBlb[9].getText().trim();s5=XYBlb[10].getText().trim();s6=XYBlb[11].getText().trim();
al.add(s1);al.add(s2);al.add(s3);
al.add(s4);al.add(s5);al.add(s6);
al.add(p);
writeB();
al.clear();
dispose();
}
}
}
/*******************
*timer事件,用于显示扫雷的时间
*/
class timerLin implements ActionListener
{
int time=0;
public void actionPerformed(ActionEvent e)
{
time++;
if(time<10)lb2.setText("00"+time);
if(time>=10 & time<=99)lb2.setText("0"+time);
if(time>=100)lb2.setText(time+"");
}
}
/*******************
*timer事件,控制双击判断
*/
class ter implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(doubleClieckID==4)
{
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
if(bttmp==mineBtn[i][j])
{
doubleClieck(i,j,mineBtn[i][j].id);
}
}
}
}
doubleClieckID=0;
}
public void doubleClieck(int x,int y,int btnShuZhi)
{
int minenum=0; //存储点击了几颗雷
for(int i=-1;i<2;i++)
{
if(i+x>=rows)continue;
if(i+x<0)continue;
for(int j=-1;j<2;j++)
{
if(j+y>=cols)continue;
if(j+y<0)continue;
if(i==0 & j==0)continue;
if(mineBtn[i+x][j+y].id>=20)
{
minenum++;
}
}
}
if(minenum==btnShuZhi)
{
doubleClieckShow(x,y,btnShuZhi);
}
}
public void doubleClieckShow(int x,int y,int btnShuZhi)
{
boolean shuDK=false;
for(int i=-1;i<2;i++)
{
if(i+x>=rows)continue;
if(i+x<0)continue;
for(int j=-1;j<2;j++)
{
if(j+y>=cols)continue;
if(j+y<0)continue;
if(i==0 & j==0)continue;
if(mineBtn[i+x][j+y].id!=29)
{
if(mineBtn[i+x][j+y].id>=19)
{
mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/WrongLei.gif")));
mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/WrongLei.gif")));
beginBtn.setIcon(new ImageIcon(MineFrame.class.getResource("image/88.jpg")));
if(mineBtn[i+x][j+y].id==19)
{
mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/DiLei_Bomd.gif")));
mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/DiLei_Bomd.gif")));
}
shuDK=true;
if(t.isRunning())
{
t.stop();
bool=false;
}
}
if(mineBtn[i+x][j+y].id==10) {DiGui(i+x,j+y);}
if(mineBtn[i+x][j+y].id==10){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/0.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/0.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==11){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/1.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/1.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==12){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/2.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/2.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==13){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/3.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/3.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==14){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/4.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/4.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==15){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/5.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/5.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==16){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/6.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/6.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==17){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/7.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/7.gif")));mineBtn[i+x][j+y].id-=10;}
if(mineBtn[i+x][j+y].id==18){mineBtn[i+x][j+y].setIcon(new ImageIcon(MineFrame.class.getResource("image/8.gif")));mineBtn[i+x][j+y].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/8.gif")));mineBtn[i+x][j+y].id-=10;}
mineBtn[i+x][j+y].setEnabled(false);
mineBtn[i+x][j+y].setBorder(new EmptyBorder(new Insets(1,1,1,1)));
}
}
}
win();
if(shuDK) //放在循环外面。用shuDK 布尔值来控制
{
lose();
}
}
public void lose()
{
for(int k=0;k<rows;k++)
{
for(int l=0;l<cols;l++)
{
if(mineBtn[k][l].id==19 & mineBtn[k][l].isEnabled())
{
mineBtn[k][l].setIcon(new ImageIcon(MineFrame.class.getResource("image/DiLei.gif")));
mineBtn[k][l].setDisabledIcon(new ImageIcon(MineFrame.class.getResource("image/DiLei.gif")));
mineBtn[k][l].setEnabled(false);
mineBtn[k][l].setBorder(new EmptyBorder(new Insets(1,1,1,1)));
}
}
}
}
}
/**
* 双击不能展开是按钮的下陷效果
*/
class YangShi implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(doubleCliecktmp==4)
{
time.stop();
}
else
{
doubleCliecktmp=0;
}
}
}
class doub implements MouseListener
{
MineButton mbtn;
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e)
{
mbtn=(MineButton)e.getSource();
doubleCliecktmp+=e.getButton();
if(doubleCliecktmp==4)
{
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
if(mbtn==mineBtn[i][j] & mineBtn[i][j].id>=0 & mineBtn[i][j].id<=8)
{
A(i,j);
}
}
}
}
}
public void mouseReleased(MouseEvent e)
{
mbtn=(MineButton)e.getSource();
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
if(mbtn==mineBtn[i][j])
{
B(i,j);
}
}
}
if(!(time.isRunning()))
{
time.restart();
}
}
public void A(int x,int y)
{
for(int i=-1;i<2;i++)
{
if(i+x>=rows)continue;
if(i+x<0)continue;
for(int j=-1;j<2;j++)
{
if(j+y>=cols)continue;
if(j+y<0)continue;
if(i==0 & j==0)continue;
if(mineBtn[i+x][j+y].id>=10 && mineBtn[i+x][j+y].id<=20)
{
if(t.isRunning())
{
mineBtn[i+x][j+y].setBorder(new EmptyBorder(new Insets(1,1,1,1)));
}
}
}
}
doubleCliecktmp=0;
}
public void B(int x,int y)
{
for(int i=-1;i<2;i++)
{
if(i+x>=rows)continue;
if(i+x<0)continue;
for(int j=-1;j<2;j++)
{
if(j+y>=cols)continue;
if(j+y<0)continue;
if(i==0 & j==0)continue;
if(mineBtn[i+x][j+y].id>=10 && mineBtn[i+x][j+y].id<=20)
{
if(t.isRunning())
{
mineBtn[i+x][j+y].setBorder(new BevelBorder(BevelBorder.RAISED));
}
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -