[java] How to use the arrow key?
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;
}
}
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
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.
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
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
Popular Topics
Advertisement
Recommended Tutorials
Advertisement