PDA

View Full Version : program does not enter for loop in Java 2011



Vuhelper
07-23-2011, 05:44 PM
program does not enter for loop in Java 2011


import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

public class SnakeG extends JPanel implements KeyListener, Runnable{

private Vector<Point> snake = new Vector<Point> (5,2);

private Vector<Rectangle> snakeRectangle = new Vector<Rectangle> (5,2);

public void startGraphics (){

this.addKeyListener(this);
Thread thread = new Thread (this);

repaint();
grabFocus();
snake.add (new Point (250,250));
snake.add(new Point (250,240));
snake.add(new Point (250,230));
addBall();
thread.start();
}

private void addBall() {
// TODO Auto-generated method stub

}



public void paintComponent (Graphics g){
//TODO GRAPHICS AREA
super.paintComponent (g);

for (Point x : snake){
g.fillOval((int)x.getX(),(int)x.getY(),10, 10);

}
}




private boolean pressed = false;
private boolean up,down,left,right;
@Override
public void keyPressed(KeyEvent e) {
System.out.println ("KeyListener");
int key = e.getKeyCode();

up = false;
down = false;
left = false;
right = false;
if (key == KeyEvent.VK_UP && pressed == false){
up = true;
}
else if (key == KeyEvent.VK_DOWN && pressed == false){
down = true;
}
else if (key == KeyEvent.VK_LEFT && pressed == false){
left = true;
}
else if (key == KeyEvent.VK_RIGHT && pressed == false){
right = true;
}
pressed = true;
}

@Override
public void keyReleased(KeyEvent e) {
pressed = false;
}

@Override
public void keyTyped(KeyEvent e){}

@Override
public void run() {
// TODO Auto-generated method stub
System.out.println ("Started Thread");
while (true){
if (up == true){
for (int i = snake.size(); i < 0; i--){
System.out.println ("Entered loop");
if (i == 0){
snake.firstElement().y -= 10;
}
else {
snake.elementAt(i).y = snake.elementAt(i-1).y;
}
snake.elementAt(i);
}

}
else if (down == true){


}
else if (left == true){
for (int i = snake.size(); i < 0; i--){
if (i == 0){
snake.firstElement().x -= 10;
}
else {
snake.elementAt(i).x = snake.elementAt(i-1).x;
}
}

}
else if (right == true){


}

repaint();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}