用swing写蛇的时候,画布的背景色显示不出来,蛇的头和身体也显示不出来。
进口?javax . swing . jpanel;
进口?Java . awt . graphics;
进口?Java . awt . event . key adapter;
进口?Java . awt . event . key event;
进口?Java . awt . event . key listener;
进口?Java . awt . borderlayout;
进口?Java . awt . color;
进口?javax . swing . image icon;
班级?蛇板?延伸?JPanel?器物?键盘监听器
{
ImageIcon?向上?=?新的?ImageIcon(" snake . jpg ");
ImageIcon?下来?=?新的?ImageIcon(" snake . jpg ");
ImageIcon?向左?=?新的?ImageIcon(" snake . jpg ");
ImageIcon?对吗?=?新的?ImageIcon(" snake . jpg ");
ImageIcon?标题?=?新的?ImageIcon(" snake . jpg ");
ImageIcon?食物?=?新的?ImageIcon(" snake . jpg ");
ImageIcon?身体?=?新的?ImageIcon(" snake . jpg ");
int[]?snakex?=?新的?int[750];
int[]?snakey?=?新的?int[750];
int?莱恩。=?3;
字符串?方想?=?”R”;
公?蛇形面板()
{
setup();
}
@覆盖
公?作废?油漆(图形?g)
{
super.paint(克);
setBackground(颜色。蓝色);
title.paintIcon(this,?g,?25,?96);
g.fillRect(25,75,?850,?600);
if(fangxiang.equals("R "))
{
right.paintIcon(这个,?g,?snakex[0],?snakey[0]);
}
不然呢?if(fangxiang.equals("L "))
{
left.paintIcon(this,?g,?snakex[0],?snakey[0]);
}
不然呢?if(fangxiang.equals("D "))
{
down.paintIcon(这个,?g,?snakex[0],?snakey[0]);
}
不然呢?if(fangxiang.equals("U "))
{
up.paintIcon(这个,?g,?snakex[0],?snakey[0]);
}
for(int?我?=?1;?我?& lt=?len?i++)
{
body.paintIcon(这个,?g,?snakex[i],?snakey[I]);
}
g . dispose();
}
公?作废?设置()
{
莱恩。=?5;
方想?=?”R”;
snakex[0]?=?100;
snakey[0]?=?100;
snakex[1]?=?75;
snakey[1]?=?100;
snakex[2]?=?50;
snakey[2]?=?100;
}
@覆盖
公?作废?keyTyped(KeyEvent?e)
{}
@覆盖
公?作废?按键(按键事件?e)
{
开关(e.getKeyCode())
{
案子?关键事件。VK_UP:
方想?=?“U”;
打破;
案子?关键事件。VK _唐:
方想?=?“D”;
打破;
案子?关键事件。VK _左:
方想?=?“L”;
打破;
案子?关键事件。VK右:
方想?=?”R”;
打破;
默认值:
打破;
}
repaint();
}
@覆盖
公?作废?keyReleased(KeyEvent?e)
{}
}
公?班级?蛇
{
公?静电?作废?main(String[]?参数)
{
JFrame?框架?=?新的?JFrame();
frame.setSize(900,?700);
frame.setLayout(新?BorderLayout());
frame . setlocationrelativeto(null);
frame . setdefaultcloseoperation(JFrame。EXIT _ ON _ CLOSE);
蛇板?面板?=?新的?snake panel();
frame . add(panel);
frame.addKeyListener(面板);
frame . set visible(true);
}
}