• Create Account

## [java] How to use the arrow key?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

2 replies to this topic

### #1Delisk  Members

Posted 05 July 2000 - 08:48 AM

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

### #2GKW  Members

Posted 05 July 2000 - 09:44 AM

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;
}
}

### #3joeG  Members

Posted 05 July 2000 - 09:48 AM

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

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.