?? gamepanel.java
字號:
package cn.itcast.snake.view;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
import cn.itcast.snake.entities.Food;
import cn.itcast.snake.entities.Ground;
import cn.itcast.snake.entities.Snake;
import cn.itcast.snake.util.Global;
/**
* 游戲的顯示界面<BR>
* 可以用 setBackgroundColor() 設(shè)置游戲的背景色
*
* @version 1.0, 01/01/08
*
* @author 湯陽光
*
*/
public class GamePanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private Image oimg;
private Graphics og;
public static final Color DEFAULT_BACKGROUND_COLOR = new Color(0xcfcfcf);
/**
* 背景顏色
*/
private Color backgroundColor = DEFAULT_BACKGROUND_COLOR;
public GamePanel() {
/* 設(shè)置大小和布局 */
this.setSize(Global.WIDTH * Global.CELL_WIDTH, Global.HEIGHT
* Global.CELL_HEIGHT);
this.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
this.setFocusable(true);
}
/**
* 重新顯示 Ground, Shape
*
* @param ground
* @param snake
*/
public synchronized void redisplay(Ground ground, Snake snake, Food food) {
/* 重新顯示 */
if (og == null) {
oimg = createImage(getSize().width, getSize().height);
if (oimg != null)
og = oimg.getGraphics();
}
if (og != null) {
og.setColor(backgroundColor);
og.fillRect(0, 0, Global.WIDTH * Global.CELL_WIDTH, Global.HEIGHT
* Global.CELL_HEIGHT);
if (ground != null)
ground.drawMe(og);
snake.drawMe(og);
if (food != null)
food.drawMe(og);
this.paint(this.getGraphics());
}
}
@Override
public void paint(Graphics g) {
g.drawImage(oimg, 0, 0, this);
}
/**
* 得到當(dāng)前的背景顏色
*
* @return
*/
public Color getBackgroundColor() {
return backgroundColor;
}
/**
* 設(shè)置當(dāng)前的背景顏色
*
* @param backgroundColor
*/
public void setBackgroundColor(Color backgroundColor) {
this.backgroundColor = backgroundColor;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -