} @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub
}
}
}
f.addKeyListener( new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e.getKeyCode() == 37){ x = 100; System.out.println(x); } } } ); 自己找到了.应是这个就可以改变X的值 谢谢楼上.不好意思刚刚看到.
import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent;import javax.swing.JFrame; import javax.swing.JLabel;public class FrameTest { JFrame mainFrame = new JFrame("KeyListener"); JLabel label = new JLabel(); int x = 10; int y = 10; public FrameTest() { mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.setSize(400, 400); label.setText(getStr(x, y)); mainFrame.add(label); mainFrame.setVisible(true); mainFrame.addKeyListener(new keylist()); } //在标签上显示x,y的格式; public String getStr(int x, int y) { String s = "x = " + x + ", y = " + y; return s; } public static void main(String[] args) { new FrameTest(); } //实现按键监听; private class keylist extends KeyAdapter { public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); switch (key) { // JDK对四个方向的常量定义; // public static final int VK_LEFT = 0x25; // public static final int VK_UP = 0x26; // public static final int VK_RIGHT = 0x27; // public static final int VK_DOWN = 0x28; case 37: x--; break;// VK_LEFT case 39: x++; break; case 38: y++; break; case 40: y--; break; } label.setText(getStr(x, y)); mainFrame.add(label); mainFrame.setVisible(true); } } }
import java.awt.event.KeyListener;import javax.swing.JFrame;public class KeybordLisener_demo extends JFrame { /**
* @param args
*/
int x=10;
int y=10;
keyevent ke=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
KeybordLisener_demo ny=new KeybordLisener_demo();
}
public KeybordLisener_demo()
{
this.setSize(200, 400);
this.setVisible(true);
ke=new keyevent();
this.addKeyListener(ke); }
class keyevent implements KeyListener{ @Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
} @Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_LEFT){
x--;
System.out.println(x);
System.out.println(y);
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{y--;
System.out.println(x);
System.out.println(y);
}
//System.out.println(e.getKeyChar());
} @Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
}
new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode() == 37){
x = 100;
System.out.println(x);
}
}
}
);
自己找到了.应是这个就可以改变X的值
谢谢楼上.不好意思刚刚看到.
import java.awt.event.KeyEvent;import javax.swing.JFrame;
import javax.swing.JLabel;public class FrameTest
{
JFrame mainFrame = new JFrame("KeyListener");
JLabel label = new JLabel();
int x = 10;
int y = 10; public FrameTest()
{
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(400, 400); label.setText(getStr(x, y));
mainFrame.add(label);
mainFrame.setVisible(true);
mainFrame.addKeyListener(new keylist());
} //在标签上显示x,y的格式;
public String getStr(int x, int y)
{
String s = "x = " + x + ", y = " + y;
return s;
} public static void main(String[] args)
{
new FrameTest();
} //实现按键监听;
private class keylist extends KeyAdapter
{ public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
switch (key)
{
// JDK对四个方向的常量定义;
// public static final int VK_LEFT = 0x25;
// public static final int VK_UP = 0x26;
// public static final int VK_RIGHT = 0x27;
// public static final int VK_DOWN = 0x28;
case 37:
x--;
break;// VK_LEFT
case 39:
x++;
break;
case 38:
y++;
break;
case 40:
y--;
break;
}
label.setText(getStr(x, y));
mainFrame.add(label);
mainFrame.setVisible(true);
} }
}