📄 mainframe.java
字号:
package pushbook;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import pushbook.core.*;
/**
* <p>Title: 推箱子</p>
* <p>Description: 主窗口</p>
* <p>Copyright: 无版权</p>
* <p>Company: 松原市第五高级中学</p>
* @author 郑雪
* @version 1.0
*/
public class MainFrame extends JFrame
{
//游戏控制器
public ControlCenter gameControlCenter = null;
public DrawCenter gameDrawCenter = null;
//图片更新计数器
private static int imageUpdateConter = 0;
Button nextLevel = new Button();
Button privLevel = new Button();
//Construct the frame
public MainFrame()
{
gameDrawCenter = new DrawCenter();
gameControlCenter = new ControlCenter();
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try
{
jbInit();
gameControlCenter.loadResource(this);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception
{
nextLevel.setBackground(Color.pink);
nextLevel.setFont(new java.awt.Font("宋体", 1, 12));
nextLevel.setForeground(Color.red);
nextLevel.setLabel("下一关");
nextLevel.setLocale(java.util.Locale.getDefault());
nextLevel.setBounds(new Rectangle(692, 294, 74, 26));
nextLevel.addKeyListener(new MainFrame_nextLevel_keyAdapter(this));
nextLevel.addMouseListener(new MainFrame_nextLevel_mouseAdapter(this));
this.getContentPane().setBackground(Invariable.gameMainBg);
this.setForeground(Color.gray);
this.setResizable(false);
this.setSize(new Dimension(Invariable.windowWidth, Invariable.windowHeight));
this.setState(Frame.NORMAL);
this.setTitle(Invariable.mainTitle);
this.getContentPane().setLayout(null);
this.addKeyListener(new MainFrame_this_keyAdapter(this));
privLevel.setBackground(Color.pink);
privLevel.setFont(new java.awt.Font("宋体", 1, 12));
privLevel.setForeground(Color.red);
privLevel.setLabel("上一关");
privLevel.setBounds(new Rectangle(618, 294, 73, 26));
privLevel.addMouseListener(new MainFrame_privLevel_mouseAdapter(this));
privLevel.addKeyListener(new MainFrame_privLevel_keyAdapter(this));
this.getContentPane().add(nextLevel, null);
this.getContentPane().add(privLevel, null);
}
public void paint(Graphics g)
{
super.paint(g);
gameDrawCenter.reDrawAll(this);
if(gameControlCenter.gameover)
gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
}
public boolean imageUpdate(Image img,int infoflags,int x,int y,int w,int h)
{
if((infoflags & ALLBITS) !=0)
{
imageUpdateConter ++;
if(imageUpdateConter >= gameControlCenter.haveImageElement +
gameControlCenter.activeElement)
{
gameDrawCenter.reDrawAll(this);
}
if(gameControlCenter.levelIndex != 0) this.repaint();
}
return (infoflags & (ALLBITS | ERROR| ABORT)) == 0;
}
public void repaint()
{
gameDrawCenter.reDrawAll(this);
if(gameControlCenter.gameover)
gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
}
void on_keyPressed(KeyEvent e)
{
if(gameControlCenter.pressKey(e.getKeyCode()))
gameDrawCenter.reDrawAll(this);
if(gameControlCenter.canPass())
{
gameDrawCenter.drawUpLevelText(getGraphics(),gameControlCenter.gameCelebrate);
gameControlCenter.nextLevel();
this.setTitle(gameControlCenter.gameTitle);
gameDrawCenter.reDrawAll(this);
if(gameControlCenter.gameover)
{
MidiPlayer.getInstance("/resource/6.mid").changeFile("/resource/6.mid");
MidiPlayer.getInstance("/resource/6.mid").start();
gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
}
}
}
void nextLevel_mouseClicked(MouseEvent e)
{
gameDrawCenter.drawUpLevelText(getGraphics(),gameControlCenter.gameCelebrate);
gameControlCenter.nextLevel();
this.setTitle(gameControlCenter.gameTitle);
this.paint(this.getGraphics());
gameDrawCenter.reDrawAll(this);
if(gameControlCenter.gameover)
{
MidiPlayer.getInstance("/resource/6.mid").changeFile("/resource/6.mid");
MidiPlayer.getInstance("/resource/6.mid").start();
gameDrawCenter.drawEndText(this.getGraphics(),gameControlCenter.endImage,this);
}
}
void privLevel_mouseClicked(MouseEvent e)
{
gameControlCenter.privLevel();
this.setTitle(gameControlCenter.gameTitle);
this.paint(this.getGraphics());
gameDrawCenter.reDrawAll(this);
}
void nextLevel_keyPressed(KeyEvent e)
{
on_keyPressed(e);
}
void privLevel_keyPressed(KeyEvent e)
{
on_keyPressed(e);
}
}
class MainFrame_this_keyAdapter extends KeyAdapter
{
MainFrame adaptee;
MainFrame_this_keyAdapter(MainFrame adaptee)
{
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e)
{
adaptee.on_keyPressed(e);
}
}
class MainFrame_nextLevel_mouseAdapter extends java.awt.event.MouseAdapter
{
MainFrame adaptee;
MainFrame_nextLevel_mouseAdapter(MainFrame adaptee)
{
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e)
{
adaptee.nextLevel_mouseClicked(e);
}
}
class MainFrame_nextLevel_keyAdapter extends java.awt.event.KeyAdapter
{
MainFrame adaptee;
MainFrame_nextLevel_keyAdapter(MainFrame adaptee)
{
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e)
{
adaptee.nextLevel_keyPressed(e);
}
}
class MainFrame_privLevel_keyAdapter extends java.awt.event.KeyAdapter
{
MainFrame adaptee;
MainFrame_privLevel_keyAdapter(MainFrame adaptee)
{
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e)
{
adaptee.privLevel_keyPressed(e);
}
}
class MainFrame_privLevel_mouseAdapter extends java.awt.event.MouseAdapter
{
MainFrame adaptee;
MainFrame_privLevel_mouseAdapter(MainFrame adaptee)
{
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e)
{
adaptee.privLevel_mouseClicked(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -