如题 最好能举例说明 可用如下例子  当SPACE 按下的时候输出一个值 放开的时候输出另一个值 
import java.awt.*;
import java.awt.event.*;
public class Test extends Frame {

public void lauchFrame() {
this.setLocation(400, 300);
this.setSize(800, 600);
setVisible(true);
this.addKeyListener(new KeyMonitor());  // 添加键盘响应
} public static void main(String[] args) {
Test tc = new Test();
tc.lauchFrame();
}
private class KeyMonitor extends KeyAdapter{
public void keyPressed(KeyEvent e) {
    int key = e.getKeyCode();
    switch(key){
    case KeyEvent.VK_SPACE:
     System.out.println("asd");
     break;
    case KeyEvent.VK_DOWN:
     System.out.println("jack");
     break; 
    }
}
}}

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;import javax.swing.JButton;
    import javax.swing.JFrame;public class Test1 extends JFrame { /**
     * 
     */
    private static final long serialVersionUID = 1L;
    JButton press = null; public Test1() {
    Container c = this.getContentPane();
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLayout(new FlowLayout());
    this.setLocation(400, 300);
    this.setSize(800, 600); press = new JButton("按下");
    c.add(press);
    press.addKeyListener(new KeyMonitor()); // 添加键盘响应
    setVisible(true);
    } private class KeyMonitor extends KeyAdapter {
    public void keyPressed(KeyEvent e) {
    int key = e.getKeyCode();
    switch (key) {
    case KeyEvent.VK_W:
    press.setText(String.valueOf(e.getKeyChar()));
    break;
    case KeyEvent.VK_S:
    press.setText(String.valueOf(e.getKeyChar()));
    break;
    }
    } @Override
    public void keyReleased(KeyEvent e) {
    press.setText(String.valueOf("按下"));
    } } public static void main(String[] args) {
    Test1 tc = new Test1();
    }}