Jump to content

  • Log In with Google      Sign In   
  • 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.

  • You cannot reply to this topic
2 replies to this topic

#1 Delisk   Members   -  Reputation: 122

Like
Likes
Like

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

Sponsor:

#2 GKW   Members   -  Reputation: 200

Like
Likes
Like

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

#3 joeG   Members   -  Reputation: 172

Like
Likes
Like

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.KeyListener
public 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 them

public 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.



PARTNERS