📄 passframe.java
字号:
package tuixiangzi;
/**
*
* @author Cheny
*/
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.util.Stack;
public class PassFrame extends JFrame implements ActionListener {
JMenuItem renew, back, last, next, choose, save;
JMenuItem helper;
JMenuItem ranker;
JMenuItem backcover;
private static Savemap savemap=new Savemap ();
private static SaveRank saveRank=new SaveRank();
private static RankPanel rankpanel=new RankPanel();
private static JPanel FPanel = new JPanel();
private static CardLayout card = new CardLayout();
private static CoverPanel cover= new CoverPanel();
private static BoxPanel panel =new BoxPanel();
private static ProducerPanel Producer=new ProducerPanel();
private static HelpPanel Help=new HelpPanel();
public PassFrame() {
super("推箱子");
renew=new JMenuItem(" 重新开始 F1");
back=new JMenuItem(" 悔一步 F2");
last=new JMenuItem(" 上一关 A ");
next=new JMenuItem(" 下一关 S ");
choose=new JMenuItem(" 选关 D ");
save=new JMenuItem(" 保存 ");
JMenu choice=new JMenu(" 游戏 ");
choice.add(renew); choice.add(back); choice.add(last);
choice.add(next); choice.add(choose); choice.addSeparator();
choice.add(save);
renew.addActionListener(this); //choice 监听器
back.addActionListener(this);
last.addActionListener(this);
next.addActionListener(this);
choose.addActionListener(this);
save.addActionListener(this);
helper=new JMenuItem("帮助主题");
JMenu help=new JMenu("帮助");
help.add(helper);
helper.addActionListener(this);
ranker=new JMenuItem(" 排行榜 ");
JMenu rank =new JMenu("排行榜");
rank.add(ranker);
ranker.addActionListener(this);
backcover=new JMenuItem(" 返回封面 ");
JMenu Backcover =new JMenu("返回封面");
Backcover.add( backcover);
backcover.addActionListener(this);
JMenuBar bar = new JMenuBar(); //添加菜单
bar.add( choice); bar.add(help);
bar.add(rank); bar.add(Backcover);
setJMenuBar(bar);
FPanel.setLayout(card);
FPanel.setPreferredSize(new Dimension(410,380));
FPanel.add(cover,"p1");
FPanel.add(panel,"p2");
FPanel.add(rankpanel,"p3");
FPanel.add(Producer,"p4");
FPanel.add(Help,"p5");
FPanel.setFocusable(true);
getContentPane().add(FPanel);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}
public static void cardshow_Producer(){
card.show(FPanel, "p4");
Producer.requestFocus();
}
public static void cardshow_Help(){
card.show(FPanel, "p5");
Producer.requestFocus();
}
public static void cardshow_panel () {
card.show(FPanel, "p2");
panel.movements=0;
panel.level=1;
panel.score=0;
panel.play(panel.level);
panel.requestFocus();
}
public static void cardshow_continue(){
card.show(FPanel, "p2");
panel.play(0);
panel.requestFocus();
}
public static void cardshow_cover() {
card.show(FPanel, "p1");
cover.requestFocus();
}
public static void cardshow_rankpanel() {
SaveRankRead Read =new SaveRankRead();
String Ranker1,Ranker2,Ranker3 ;
String RankScore1,RankScore2,RankScore3;
Ranker1=Read.getRanker1();
RankScore1=Read.getScore1();
Ranker2=Read.getRanker2();
RankScore2=Read.getScore2();
Ranker3=Read.getRanker3();
RankScore3=Read.getScore3();
rankpanel.ranker1.setText( Ranker1);
rankpanel.score1.setText( RankScore1);
rankpanel.ranker2.setText( Ranker2);
rankpanel.score2.setText( RankScore2);
rankpanel.ranker3.setText( Ranker3);
rankpanel.score3.setText( RankScore3);
card.show(FPanel, "p3");
rankpanel.requestFocus();
}
public static void FrameExit(){
System.exit(0);
}
public void actionPerformed(ActionEvent e){
if( e.getSource()==renew){ //重新开始
panel.play(panel.level);
panel.requestFocus();
panel.remove();
panel.movements=panel.Smovements.pop();
}
else if( e.getSource()==last){ //上一关
panel.level--;
if(panel.level<1){
panel.level++;
JOptionPane.showMessageDialog(this,"本关是第一关");
panel.requestFocus();
}
else{
panel.play(panel.level);
panel.requestFocus();
panel.Smovements.pop();
panel.Smovements.pop();
panel.movements=panel.Smovements.peek();
}
panel.remove();
}
else if(e.getSource()==next){ //下一关
panel.level++;
if(panel.level>panel.maxlevel()){
panel.level=1;
JOptionPane.showMessageDialog(this,"本关已是最后一关");
panel.play(panel.level);
panel.requestFocus();
}
else {
panel.play(panel.level);
panel.requestFocus();
}
panel.remove();
}
else if(e.getSource()==helper){ //帮助主题
cardshow_Help();
}
else if(e.getSource()==ranker){ //排行榜
cardshow_rankpanel();
}
else if(e.getSource()==choose){ //选关
String lel=JOptionPane.showInputDialog(this,"请输入您要转到的关卡号:(1~10)");
panel.level=Integer.parseInt(lel);
panel.remove();
if(panel.level>panel.maxlevel()||panel.level<1){
JOptionPane.showMessageDialog(this, "没有这一关!!!");
panel.requestFocus();
}
else{
panel.play(panel.level);
panel.requestFocus();
}
}
else if(e.getSource()==back) { //悔一步
if(panel.isMystackEmpty() && panel.ismouseclickEmpty() )
JOptionPane.showMessageDialog(this, "您还未移动!!!");
else{
switch( panel.back()){
case 10: panel.upback(10); break;
case 11: panel.upback(11); break;
case 20: panel.downback(20); break;
case 21: panel.downback(21); break;
case 30: panel.leftback(30); break;
case 31: panel.leftback(31); break;
case 40: panel.rightback(40); break;
case 41: panel.rightback(41); break;
case 1: panel.mouseclickback();break;
}
}
panel.backmovements++;
panel.requestFocus();
}
else if(e.getSource()==save){
saveRank_map() ;
}
else if(e.getSource()== backcover){
cardshow_cover ();
}
}
public static void saveRank_map(){
try {
savemap.savewrite();
} catch (IOException ex) {
ex.printStackTrace();
}
try {
saveRank.Rankwrite();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -