Advertisement

[java] How to use the arrow key?

Started by July 05, 2000 02:48 PM
1 comment, last by Delisk 24 years, 5 months ago
Ok, i know sond as a basic question, but how do i use the arrow key? I been able to use the arrow key on the numric keypad...but its not the best. Here gow i do it private void keyPressMove(Object source, KeyPressEvent e) { char key = (char)e.getKeyChar(); MoveKey.setText("" + key); String keyP = MoveKey.getText(); if (keyP.equals("4")) { MoveLeft(); } if (keyP.equals("6")) { MoveRight(); } } It as worked, but it is anoying to use it this way...also when i use the normal arrow key it make it imposible to use any hother key! Please post the source code! (if you can) Help me!!!!! PS-Im not sure this is important but I use VJ++ 6 Delisk
I personally like to use the KeyEvent constants such as KeyEvent.VK_UP in a switch statement. I think it is VK_UP but what ever it is it saves you the effort of converting the char to a string and comparing the results. You can also use the ascii numbers for alpha characters and cast them to ints for switches. Here is a sample -

public void keyTyped(final java.awt.event.KeyEvent p1) {
switch( (int)p1.getKeyChar() ) {
case( (int)''s'' ):
sholder = ( sholder + 5 ) % 360;
glc.getContext().makeCurrent();
glc.getContext().unlock();
glc.repaint();
break;
case( (int)''S'' ):
sholder = ( sholder - 5 ) % 360;
glc.getContext().makeCurrent();
glc.getContext().unlock();
glc.repaint();
break;
case( (int)''e'' ):
elbow = ( elbow + 5 ) % 360;
glc.getContext().makeCurrent();
glc.getContext().unlock();
glc.repaint();
break;
case( (int)''E'' ):
elbow = ( elbow - 5 ) % 360;
glc.getContext().makeCurrent();
glc.getContext().unlock();
glc.repaint();
break;
case( (int)''r'' ):
rotator = ( rotator + 5 ) % 360;
glc.getContext().makeCurrent();
glc.getContext().unlock();
glc.repaint();
break;
case( (int)''R'' ):
rotator = ( rotator - 5 ) % 360;
glc.getContext().makeCurrent();
glc.getContext().unlock();
glc.repaint();
break;
}
}
"... we should have such an empire for liberty as she has never surveyed since the creation ..."Thomas Jefferson
Advertisement
Whipping out my trusty jdk online doc I can positively say that you''d need to do something like this:

The Java > 1.1 way.
    public class MyClass implements java.awt.event.KeyListenerpublic void keyPressed(java.awt.event.KeyEvent e){	//The source Object exists but only inside KeyEvent	Object source = e.getSource();	//Each key has a unique key code	int key = e.getKeyCode();	//Do something based on which key was pressed	switch(key)	{	case KeyEvent.VK_UP:	break;	case KeyEvent.VK_DOWN:	break;	}}//Have to include these other methods from interface KeyListener//even though you don''t do anything with thempublic void keyReleased(KeyEvent e) {}public void keyTyped(KeyEvent e) {}} //End MyClass    


That should get you going. On a side note: There''s a lot of stuff in the Java AWT that follows the interface pattern, get to know it

joeG
joeG

This topic is closed to new replies.

Advertisement