package russiagame;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.awt.*;
import java.awt.Toolkit;
import javax.swing.border.*;
import java.awt.event.*;
import javax.swing.event.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class MainFrame
extends JFrame {
private Timer timer; //方块下落时间间隔控制类
private int nTime = 1000; //方块下落速度
private Root root; //方块
private GameTable gGameAreaTable; //方块下落区
private PreviewTable gPreviewTable; //方块预览区
private int intGraph; //标志创建哪一个要下落的方块
private int intNextGraph; //标志下一个要创建的方块
private int intTotalScore = 0; //用来记录总分数
private boolean bCanMove = false; //标志是否响应键盘
private int intSpeed = 1; //速度等级
private Panel jMainPanel = new Panel(); //添加键盘监听的Panel
private GameAreaPanel jGamePanel; //方块下落区域
private PreviewPanel jNextGraphPanel; //方块预览区域
private XYLayout xyLayout = new XYLayout(); //界面布局
private JButton jStartButton = new JButton();
private JButton jRestartButton = new JButton();
private JButton jExitButton = new JButton();
private JLabel jSpeedLabel = new JLabel();
private JSpinner jSpeedSpinner = new JSpinner();
private JLabel jScoreLabel = new JLabel();
private JTextField jScoreTextField = new JTextField();
private JLabel jNextGraphLabel = new JLabel();
private TitledBorder titledBorder3;
private JLabel jCopyRightLabel = new JLabel();
private TitledBorder titledBorder1;
private TitledBorder titledBorder4;
private TitledBorder titledBorder5;
private TitledBorder titledBorder6;
private TitledBorder titledBorder7;
private TitledBorder titledBorder8;
public MainFrame() {
try {
setTitle("俄罗斯方块游戏");
setLocation(200, 130);
setSize(600, 400);
jbInit();
getContentPane().add(jMainPanel, "North");
getContentPane().addKeyListener(new KeyAdapter() { //主窗口添加键盘监听器
public void keyPressed(KeyEvent e) {
ProcessKeyEvent(e);
}
});
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
MainFrame objMainFrame = new MainFrame();
objMainFrame.pack();
objMainFrame.setVisible(true);
objMainFrame.validate();
objMainFrame.setResizable(false);
}
private void jbInit() throws Exception {
jMainPanel.setBackground(new Color(72, 112, 112));
jMainPanel.setForeground(UIManager.getColor(
"TextArea.selectionBackground"));
jMainPanel.setLayout(xyLayout);
gGameAreaTable = new GameTable(15, 26);
gPreviewTable = new PreviewTable(5, 4);
jGamePanel = new GameAreaPanel(gGameAreaTable);
jNextGraphPanel = new PreviewPanel(gPreviewTable);
jStartButton.setBackground(Color.pink);
jStartButton.setFont(new java.awt.Font("Dialog", 0, 14));
jStartButton.setForeground(SystemColor.desktop);
jStartButton.setBorder(titledBorder1);
jStartButton.setBorderPainted(true);
jStartButton.setText("开始游戏");
jStartButton.addActionListener(new MainFrame_jStartButton_actionAdapter(this));
jRestartButton.setBackground(Color.pink);
jRestartButton.setFont(new java.awt.Font("Dialog", 0, 14));
jRestartButton.setForeground(SystemColor.desktop);
jRestartButton.setBorder(titledBorder1);
jRestartButton.setText("重新游戏");
jRestartButton.addActionListener(new
MainFrame_jRestartButton_actionAdapter(this));
jExitButton.setBackground(Color.pink);
jExitButton.setFont(new java.awt.Font("Dialog", 0, 14));
jExitButton.setForeground(SystemColor.desktop);
jExitButton.setBorder(titledBorder1);
jExitButton.setText("退出游戏");
jExitButton.addActionListener(new MainFrame_jExitButton_actionAdapter(this));
jExitButton.addActionListener(new MainFrame_jExitButton_actionAdapter(this));
jSpeedLabel.setFont(new java.awt.Font("SansSerif", 0, 14));
jSpeedLabel.setForeground(Color.orange);
jSpeedLabel.setBorder(titledBorder6);
jSpeedLabel.setText("速度选择");
jSpeedSpinner.setValue(new Integer(1));
jSpeedSpinner.addChangeListener(new SpeedChangeListener());
jScoreLabel.setText("分数记录");
jScoreLabel.setForeground(Color.orange);
jScoreLabel.setBorder(titledBorder6);
jScoreLabel.setDebugGraphicsOptions(0);
jScoreLabel.setFont(new java.awt.Font("SansSerif", 0, 14));
jScoreTextField.setBackground(Color.pink);
jScoreTextField.setBorder(null);
jScoreTextField.setEditable(false);
jScoreTextField.setText("0");
jNextGraphLabel.setFont(new java.awt.Font("SansSerif", 0, 14));
jNextGraphLabel.setForeground(Color.orange);
jNextGraphLabel.setBorder(titledBorder6);
jNextGraphLabel.setText("下一个图形");
jGamePanel.setBackground(new Color(0, 118, 125));
jCopyRightLabel.setText("Savage制作,2003-2010 Copyright...");
jCopyRightLabel.setForeground(Color.orange);
jCopyRightLabel.setFont(new java.awt.Font("SansSerif", 0, 14));
xyLayout.setWidth(407);
xyLayout.setHeight(504);
jSpeedSpinner.setBackground(SystemColor.desktop);
jSpeedSpinner.setBorder(BorderFactory.createLoweredBevelBorder());
jMainPanel.add(jGamePanel, new XYConstraints(20, 21, 257, 447));
jMainPanel.add(jNextGraphLabel, new XYConstraints(299, 159, 78, 28));
jMainPanel.add(jCopyRightLabel, new XYConstraints(62, 472, 246, 28));
jMainPanel.add(jRestartButton, new XYConstraints(299, 367, 88, 30));
jMainPanel.add(jStartButton, new XYConstraints(299, 311, 88, 30));
jMainPanel.add(jNextGraphPanel, new XYConstraints(299, 183, 78, 88));
jMainPanel.add(jScoreLabel, new XYConstraints(299, 79, 68, 28));
jMainPanel.add(jSpeedLabel, new XYConstraints(299, 7, 78, 28));
jMainPanel.add(jExitButton, new XYConstraints(299, 419, 88, 31));
jMainPanel.add(jScoreTextField, new XYConstraints(299, 110, 68, 24));
jMainPanel.add(jSpeedSpinner, new XYConstraints(300, 32, 69, 25));
intGraph = ( ( (int) Math.round(Math.random() * 12345)) % 8) + 1; //产生随机方块
switch (intGraph) { //初始化产生的方块
case 1:
root = new One();
break;
case 2:
root = new Two();
break;
case 3:
root = new Three();
break;
case 4:
root = new Four();
break;
case 5:
root = new Five();
break;
case 6:
root = new Six();
break;
case 7:
root = new Seven();
break;
case 8:
root = new Eight();
break;
default:
break;
}
jNextGraphPanel.PreviewGraph(intGraph);
root.begin(); //占据桌子,详见root类
intNextGraph = ( ( (int) Math.round(Math.random() * 12345)) % 8) + 1; //产生下一个提前显示的方块
intGraph = intNextGraph;
没有合适的资源?快使用搜索试试~ 我知道了~
俄罗斯方块游戏的开发,java课程设计源代码
共102个文件
class:23个
java:14个
java~1~:11个
5星 · 超过95%的资源 需积分: 9 20 下载量 156 浏览量
2011-01-07
09:47:27
上传
评论
收藏 138KB RAR 举报
温馨提示
俄罗斯方块游戏的开发,java课程设计源代码 大学课程设计用这个不错
资源推荐
资源详情
资源评论
收起资源包目录
俄罗斯方块游戏的开发,java课程设计源代码 (102个子文件)
MainFrame.class 12KB
Five.class 6KB
Six.class 6KB
Seven.class 6KB
One.class 4KB
Four.class 4KB
Three.class 4KB
Two.class 2KB
MainFrame$MyRun.class 2KB
GameAreaPanel.class 2KB
PreviewPanel.class 2KB
Eight.class 2KB
MainFrame$SpeedChangeListener.class 1KB
Root.class 754B
MainFrame_jRestartButton_actionAdapter.class 708B
MainFrame_jStartButton_actionAdapter.class 702B
MainFrame_jExitButton_actionAdapter.class 699B
GameAreaPanel$1.class 665B
MainFrame$2.class 650B
MainFrame$1.class 647B
MainFrame$3.class 647B
PreviewTable.class 472B
GameTable.class 463B
russiagame.dep2 15KB
MainFrame.java 18KB
Seven.java 15KB
One.java 10KB
Five.java 10KB
Six.java 10KB
Four.java 6KB
Three.java 6KB
PreviewPanel.java 3KB
Two.java 3KB
GameAreaPanel.java 3KB
Eight.java 2KB
Root.java 517B
PreviewTable.java 480B
GameTable.java 316B
Five.java~1~ 10KB
Six.java~1~ 10KB
Seven.java~1~ 9KB
One.java~1~ 7KB
Four.java~1~ 6KB
Three.java~1~ 6KB
Two.java~1~ 3KB
Eight.java~1~ 2KB
Root.java~1~ 558B
PreviewTable.java~1~ 521B
GameTable.java~1~ 328B
Six.java~2~ 10KB
Seven.java~2~ 9KB
One.java~2~ 7KB
Root.java~2~ 579B
PreviewTable.java~2~ 524B
GameTable.java~2~ 350B
PreviewPanel.java~30~ 3KB
PreviewPanel.java~31~ 3KB
PreviewPanel.java~32~ 3KB
PreviewPanel.java~33~ 3KB
PreviewPanel.java~34~ 3KB
PreviewPanel.java~35~ 3KB
PreviewPanel.java~36~ 3KB
PreviewPanel.java~37~ 3KB
PreviewPanel.java~38~ 3KB
PreviewPanel.java~39~ 3KB
Six.java~3~ 10KB
Root.java~3~ 593B
PreviewTable.java~3~ 534B
GameTable.java~3~ 455B
Six.java~4~ 10KB
GameTable.java~4~ 476B
MainFrame.java~523~ 18KB
MainFrame.java~524~ 18KB
MainFrame.java~525~ 18KB
MainFrame.java~526~ 18KB
MainFrame.java~527~ 18KB
MainFrame.java~528~ 18KB
MainFrame.java~529~ 18KB
MainFrame.java~530~ 18KB
MainFrame.java~531~ 18KB
MainFrame.java~532~ 18KB
Six.java~5~ 10KB
GameAreaPanel.java~84~ 3KB
GameAreaPanel.java~85~ 3KB
GameAreaPanel.java~86~ 3KB
GameAreaPanel.java~87~ 3KB
GameAreaPanel.java~88~ 3KB
GameAreaPanel.java~89~ 3KB
GameAreaPanel.java~90~ 3KB
GameAreaPanel.java~91~ 3KB
GameAreaPanel.java~92~ 2KB
GameAreaPanel.java~93~ 3KB
b0.jpg 633B
b1.jpg 633B
b0.jpg 633B
b0.jpg 633B
b1.jpg 633B
b1.jpg 633B
RussiaGame.jpx 3KB
RussiaGame.jpx~ 0B
共 102 条
- 1
- 2
资源评论
- 于钊2014-09-21不错 学到了很多!
- anbanglee2014-10-23很好,很有成就感
seiferyxd
- 粉丝: 4
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功