java 贪吃蛇问题求助
温谦玉 2017-02-14 11:18:17 /*SnakePanel.java*/
package snake;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class SnakePanel extends JPanel {
ImageIcon up = new ImageIcon("up.png");
ImageIcon down = new ImageIcon("down.png");
ImageIcon left = new ImageIcon("left.png");
ImageIcon right = new ImageIcon("right.png");
ImageIcon food = new ImageIcon("food.png");
ImageIcon tiltle = new ImageIcon("tiltle.png");
ImageIcon body = new ImageIcon("body.png");
int[] snakex = new int[750];
int[] snakey = new int[750];
int len = 3;
String fangxiang = "R";// 左右上下分别由L,R,U,D代表。
public SnakePanel() {
this.setFocusable(true);// 让画布上有焦点,后续操作如方向键就可操作。
setup();
}
public void Paint(Graphics g) {
this.setBackground(Color.BLACK);
tiltle.paintIcon(this, g, 25, 11);
g.fillRect(25, 75, 850, 600);
// 画蛇头
if (fangxiang == "R") {
right.paintIcon(this, g, snakex[0], snakey[0]);
} else if (fangxiang == "L") {
left.paintIcon(this, g, snakex[0], snakey[0]);
} else if (fangxiang == "U") {
up.paintIcon(this, g, snakex[0], snakey[0]);
} else if (fangxiang == "D") {
down.paintIcon(this, g, snakex[0], snakey[0]);
}
// 画蛇身
for (int i = 1; i < len; i++) {
body.paintIcon(this, g, snakex[i], snakey[i]);
}
}
public void setup() {
len = 3;
fangxiang = "R";
snakex[0] = 100;
snakey[0] = 100;
snakex[1] = 75;
snakey[1] = 100;
snakex[2] = 50;
snakey[2] = 100;
}
}
/*Snake.java*/
package snake;
import javax.swing.JFrame;
public class Snake {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame();//new 一个JFrame对象
frame.setBounds(10,10,900,720);//初始化画框的值,就是他的大小位置,这里是电脑屏幕上(10,10)这个点上画一个900长720高的方框。
frame.setResizable(false);//大小不可改变,不可拖拉
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当点击窗口关闭按钮是关闭窗口。
SnakePanel panel = new SnakePanel();//添加一个画布
frame.add(panel);
frame.setVisible(true);//让他成为可显示的。以上初始化一个JFrame过程。
}
}
目前做到这里刚刚开始,就遇上问题了,大牛们可否告知为何我的jpanel的子类SnakePanel在实例化对象的时候画布没有出现变色,该有的东西也没有,图片自己找的。