推箱子小游戏 有图形化界面
整个文件包:
链接: https://pan.baidu.com/s/1A8KXsVxf2q1Tyzxg-lxeCA 提取码: gepp
代码:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.sound.midi.*;
import java.util.Stack;
public class Tuixiangzi
{
public static void main(String[] args)
{
new mainFrame();
}
}
class mainFrame extends JFrame implements ActionListener,ItemListener
{
JLabel lb;
JButton btnrenew,btnlast,btnnext,btnchoose,btnfirst,btnover,btnback;
mainpanel panel;
MenuItem renew=new MenuItem(" 重新开始");
MenuItem last=new MenuItem(" 上一关");
MenuItem next=new MenuItem(" 下一关");
MenuItem choose=new MenuItem(" 选关");
MenuItem exit=new MenuItem(" 退出");
MenuItem about=new MenuItem(" 关于推箱子...");
mainFrame()
{
super("推箱子v2.0");
setSize(720,720);
setVisible(true);
setResizable(false);
setLocation(300,20);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cont=getContentPane();
cont.setLayout(null);
cont.setBackground(Color.black);
Menu choice=new Menu(" 选项");
choice.add(renew);choice.add(last);choice.add(next);choice.add(choose);//choice.add(back);
choice.addSeparator();choice.add(exit);
renew.addActionListener(this);
last.addActionListener(this);
next.addActionListener(this);
choose.addActionListener(this);
exit.addActionListener(this);
Menu help=new Menu(" 帮助");
help.add(about);
about.addActionListener(this);
MenuBar bar=new MenuBar();
bar.add(choice);
bar.add(help);
setMenuBar(bar);
lb=new JLabel("JAVA推箱子v2.0版!!!",SwingConstants.CENTER);
add(lb);
lb.setBounds(100,20,400,20);
lb.setForeground(Color.white);
btnrenew=new JButton("重来");
btnback=new JButton("悔一步");
btnlast=new JButton("上一关");
btnnext=new JButton("下一关");
btnchoose=new JButton("选关");
btnfirst=new JButton("第1关");
btnover=new JButton("最终关");
add(btnrenew);add(btnlast);add(btnnext);add(btnchoose);add(btnfirst);add(btnover);
btnrenew.setBounds(625,100,80,30);
btnrenew.addActionListener(this);
btnback.setBounds(625,150,80,30);
btnback.addActionListener(this);
btnfirst.setBounds(625,200,80,30);
btnfirst.addActionListener(this);
btnlast.setBounds(625,250,80,30);
btnlast.addActionListener(this);
btnnext.setBounds(625,300,80,30);
btnnext.addActionListener(this);
btnover.setBounds(625,350,80,30);
btnover.addActionListener(this);
btnchoose.setBounds(625,400,80,30);
btnchoose.addActionListener(this);
panel=new mainpanel();
add(panel);
panel.Tuixiangzi(panel.level);
panel.requestFocus();
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btnrenew||e.getSource()==renew)
{
panel.Tuixiangzi(panel.level);
panel.requestFocus();
panel.remove();
}
else if(e.getSource()==btnlast||e.getSource()==last)
{
panel.level--;
if(panel.level<1)
{panel.level++;JOptionPane.showMessageDialog(this,"本关是第一关");panel.requestFocus();}
else
{
panel.Tuixiangzi(panel.level);
panel.requestFocus();
}
panel.remove();
}
else if(e.getSource()==btnnext||e.getSource()==next)
{
panel.level++;
if(panel.level>panel.maxlevel())
{panel.level--;JOptionPane.showMessageDialog(this,"本关已是最后一关");panel.requestFocus();}
else