A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


  1. //FrameGame.java文件
  2. package ui;
  3. import java.awt.Dimension;
  4. import java.awt.Toolkit;
  5. import javax.swing.JFrame;


  6. public class FrameGame extends JFrame{
  7.        
  8.         private static final long serialVersionUID = -6194695820531427582L;

  9.         public FrameGame(){
  10.                 //设置标题
  11.                 this.setTitle("JAVA俄罗斯方块  By Pinger");
  12.                 //设置默认关闭属性(关闭程序)
  13.                 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14.                 //设置窗口大小
  15.                 this.setSize(1200,700);
  16.                 //不允许用户改变窗口大小
  17.                 this.setResizable(false);
  18.                 //居中
  19.                 Toolkit toolkit = Toolkit.getDefaultToolkit();
  20.                 Dimension screen = toolkit.getScreenSize();
  21.                 int x = (screen.width - this.getWidth()) / 2;
  22.                 int y = (screen.height - this.getHeight()) / 2 - 32;
  23.                 this.setLocation(x,y);
  24.                 //设置默认Panel
  25.                 this.setContentPane(new PanelGame());
  26.         }
  27. }       







  28. //PanelGame.java文件
  29. package ui;

  30. import java.awt.Graphics;
  31. import javax.swing.JPanel;

  32. public class PanelGame extends JPanel{
  33.        
  34.         /**
  35.          *
  36.          */
  37.         private static final long serialVersionUID = 1L;
  38.         private Lay[] lays = null;
  39.        
  40.         public PanelGame(){
  41.                 lays = new Lay[]{
  42.                         new LayDataBase(40,32,334,279),       
  43.                         new LayDisk(40,343,334,279),       
  44.                         new LayGame(414,32,334,590),       
  45.                         new LayButton(788,32,334,124),       
  46.                         new LayNext(788,188,176,148),       
  47.                         new LayLevel(964,188,158,148),       
  48.                         new LayPoint(788,368,334,200),       
  49.                 };
  50.         }
  51.        
  52.         @Override
  53.         public void paintComponent(Graphics g){
  54.                 //循环游戏层窗口
  55.                 for(int i = 0;i<lays.length;i++){
  56.                         //刷新层窗口
  57.                         lays[i].paint(g);
  58.                 }
  59.         }       
  60. }






  61. //Lay.java文件

  62. package ui;

  63. import java.awt.Graphics;
  64. import java.awt.Image;

  65. import javax.swing.ImageIcon;

  66. /**
  67. * 绘制窗口
  68. * @author Pinger
  69. *
  70. */
  71. abstract class Lay{

  72.         private static final int SIZE = 7;
  73.         private static Image WINDOW_IMG = new ImageIcon("graphics/game/0.jpg").getImage();
  74.         private static int WINDOW_W = WINDOW_IMG.getWidth(null);
  75.         private static int WINDOW_H = WINDOW_IMG.getHeight(null);
  76.        
  77.         /**
  78.          * 窗口左上角x坐标
  79.          */
  80.         protected int x;
  81.        
  82.         /**
  83.          * 窗口左上角y坐标
  84.          */
  85.         protected int y;
  86.        
  87.         /**
  88.          *窗口宽度
  89.          */
  90.         protected int w;
  91.        
  92.         /**
  93.          * 窗口高度
  94.          */
  95.         protected int h;
  96.        
  97.         protected Lay(int x,int y,int w,int h){
  98.                 this.x = x;
  99.                 this.y = y;
  100.                 this.w = w;
  101.                 this.h = h;
  102.         }
  103.        
  104.         protected void creatWindow(Graphics g){
  105.                 //左上
  106.                 g.drawImage(WINDOW_IMG, x, y, x + SIZE, y + SIZE, 0, 0, SIZE, SIZE, null);
  107.                 //中上
  108.                 g.drawImage(WINDOW_IMG, x + SIZE, y, x + w - SIZE, y + SIZE, SIZE, 0, WINDOW_W - SIZE, SIZE, null);
  109.                 //右上
  110.                 g.drawImage(WINDOW_IMG, x + w - SIZE, y, x + w, y + SIZE, WINDOW_W - SIZE, 0, WINDOW_W, SIZE, null);
  111.                 //左中
  112.                 g.drawImage(WINDOW_IMG, x, y + SIZE, x + SIZE, y + h - SIZE, 0, SIZE, SIZE, WINDOW_H - SIZE, null);
  113.                 //中
  114.                 g.drawImage(WINDOW_IMG, x + SIZE, y + SIZE, x + w - SIZE, y + h - SIZE, SIZE, SIZE, WINDOW_W - SIZE, WINDOW_H - SIZE, null);
  115.                 //右中
  116.                 g.drawImage(WINDOW_IMG, x + w - SIZE, y + SIZE, x + w, y + h - SIZE, WINDOW_W - SIZE, SIZE, WINDOW_W, WINDOW_H - SIZE, null);
  117.                 //左下
  118.                 g.drawImage(WINDOW_IMG, x, y + h - SIZE, x + SIZE, y + h, 0, WINDOW_H - SIZE, SIZE, WINDOW_H, null);
  119.                 //中下
  120.                 g.drawImage(WINDOW_IMG, x + SIZE, y + h - SIZE, x + w - SIZE, y + h, SIZE, WINDOW_H - SIZE, WINDOW_W - SIZE, WINDOW_H, null);
  121.                 //右下
  122.                 g.drawImage(WINDOW_IMG, x + w - SIZE , y + h - SIZE, x + w, y + h, WINDOW_W - SIZE, WINDOW_H - SIZE, WINDOW_W, WINDOW_H, null);
  123.         }
  124.        
  125.         abstract public void paint(Graphics g);
  126.        
  127. }




  128. //Main.java文件

  129. package main;

  130. import ui.FrameGame;

  131. public class Main {
  132.         public static void main(String[] args){
  133.                 new FrameGame()        .setVisible(true);
  134.         }
  135. }

复制代码

2 个回复

倒序浏览
本帖最后由 万合天宜 于 2014-5-13 20:20 编辑

大婶们啊
回复 使用道具 举报
大婶们,求问题解决啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马