import javax.swing.UIManager;
import java.awt.*;
/**
*
Title:
*
Description:
*
Copyright: Copyright (c) 2008
*
Company:
* @author not attributable
* @version 1.0
*/
public class Application1 {
boolean packFrame = false;
//Construct the application
public Application1() {
Frame frame = new Frame();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new Application1();
}
}
第二部分:
package ErsBlockGameDemo;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.EtchedBorder;
import javax.swing.border.Border;
/**
*
Title: 俄罗斯方块
*
Description:
*
Copyright: Copyright (c) 2008
*
Company:
* @author not attributable
* @version 1.0
*/
class ErsBlocksGame extends JFrame {
//每填满一行记100分
public final static int PER_LINE_SCORE=100;
//积多少分可以升级
public final static int PER_LEVEL_SCORE=PER_LINE_SCORE;
//最大级数为10级
public final static int MAX_LEVEL=10;
//默认级数为5级
public final static int DEFAULT_LEVEL=5;
private GameCanvas canvas;
private ErsBlock block;
private boolean playing=false;
private ControlPanel ctrlPanel;
private JMenuBar bar=new JMenuBar();
private JMenu mGame=new JMenu("游戏"),
mControl=new JMenu("控制"),
mWindowStyle=new JMenu("游戏风格"),
mInfo=new JMenu("信息");
private JMenuItem miNewGame=new JMenuItem("新游戏"),
miSetBlockColor=new JMenuItem("设置方块的颜色……"),
miSetBackColor=new JMenuItem("设置背景的颜色……"),
miTurnHarder=new JMenuItem("升高游戏难度"),
miTurnEasier=new JMenuItem("降低游戏难度"),
miExit=new JMenuItem("退出"),
miPlay=new JMenuItem("开始"),
miPause=new JMenuItem("暂停"),
miResume=new JMenuItem("恢复"),
miStop=new JMenuItem("中止游戏"),
miAuthor=new JMenuItem("版本:俄罗斯方块1.0"),
miSourceInfo=new JMenuItem("实现
源代码 由JAVA");
private JCheckBoxMenuItem
miAsWindows=new JCheckBoxMenuItem("Windows"),
miAsMotif=new JCheckBoxMenuItem("Motif"),
miAsMetal=new JCheckBoxMenuItem("Metal");
//主游戏类的构造方法,窗口标题
public ErsBlocksGame(String title){
super(title);
setSize(315,392);
Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();
setLocation ((scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);
createMenu();
Container container=getContentPane();
container.setLayout(new BorderLayout(6,0));
canvas=new GameCanvas(20,12);
ctrlPanel=new ControlPanel(this);
container.add(canvas,BorderLayout.CENTER);
container.add(ctrlPanel,BorderLayout.EAST);
addWindowListener(new WindowAdapter