该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package snake;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;
public class mainsnake extends JFrame implements KeyListener {
private JPanel contentPane;
private JButton btnStart;
int rx=0,ry=0;
boolean start=false;
List list=new ArrayList();
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
mainsnake frame = new mainsnake();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public mainsnake() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 494, 416);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
final JButton btnStart = new JButton("开始");
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
start=true;
repaint();
snakeAct temAct= new snakeAct();
temAct.setX(50);
temAct.setY(150);
list.add(temAct);
requestFocus(true);
}
});
btnStart.addKeyListener(this);
btnStart.setBounds(385, 296, 93, 23);
contentPane.add(btnStart);
JButton btnExit = new JButton("退出");
btnExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
btnExit.setBounds(385, 352, 93, 23);
contentPane.add(btnExit);
JLabel lblScore = new JLabel("分数:");
lblScore.setBounds(385, 245, 83, 23);
contentPane.add(lblScore);
JLabel lblTime = new JLabel("时间:");
lblTime.setBounds(385, 207, 83, 23);
contentPane.add(lblTime);
JPanel GamePane = new JPanel();
GamePane.setBackground(Color.GRAY);
GamePane.setBounds(10, 10, 365, 365);
contentPane.add(GamePane);
GamePane.setLayout(null);
}
public void paint(Graphics g){
super.paint(g);
//绘制蛇身
if(start){
for(int i=0; i
g.setColor(Color.black);
g.fillRect(10+list.get(i).getX()+10, 10+list.get(i).getY()+10, 10, 10);
}
}
private int Random(int x){
for(int k=0;k<1;k++){
x=((int)(10+375*Math.random()));
}
return x;
}
public void move(int x,int y){
list.get(0).setX(list.get(0).getX()+x);
list.get(0).setY(list.get(0).getY()+y);
repaint();
}
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(start){
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
move(0,-1);
break;
case KeyEvent.VK_DOWN:
move(0,1);
break;
case KeyEvent.VK_LEFT:
move(-1,0);
break;
case KeyEvent.VK_RIGHT:
move(1,0);
break;
default:
break;
}
}
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}