So I have a simple square rendered in the immediate mode. For some reason, I cannot figure out how to actually use the translate function to make the square move. Here's my player class:


Code :
public class Player extends Canvas {
 
	public int x = 0;
	public int y = 0;
	static int walkSpeed = 2;
 
	private InputHandler input;
 
	public Player() {
		render();
		update();
 
	}
 
	public void update() {
		input = new InputHandler();
		addKeyListener(input);
 
		if (input.up) System.out.print("up"); y--;
		if (input.down) System.out.print("down"); y++; 
		if (input.left) System.out.print("left"); x--;
		if (input.right) System.out.print("right"); x++;
	}
 
	public void render() {
		glTranslatef(x, y, 0);
 
		glBegin(GL_QUADS);
		glVertex2i(300, 300);// upper left
		glVertex2i(350, 300);// upper right
		glVertex2i(350, 350);// bottom right
		glVertex2i(300, 350);// bottom left
		glEnd();
	}
 
}

And here's my input handler class:

Code :
public class InputHandler implements KeyListener{
 
	private boolean[] keys = new boolean[120];	
	public boolean up, down, left, right, exit;
 
	public void update(){
		up = keys[KeyEvent.VK_W];
		down = keys[KeyEvent.VK_S];
		left = keys[KeyEvent.VK_A];
		right = keys[KeyEvent.VK_D];
		exit = keys[KeyEvent.VK_ESCAPE];
	}
 
	public void keyPressed(KeyEvent e) {
		keys[e.getKeyCode()] = true;
	}
 
	public void keyReleased(KeyEvent e) {
		keys[e.getKeyCode()] = false;
	}
 
	public void keyTyped(KeyEvent e) {
 
	}
 
}

Did I set up my key listener wrong?