我写了一个监听键盘事件的程序,编译好了,但我运行时,没有反应.下面是我的代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class keyevent implements KeyListener
{
           JFrame frame=new JFrame("监听键盘事件");
            JPanel panel=new JPanel();
            JLabel label1=new JLabel("监听按下的建");
            JLabel label2=new JLabel("监听松开的建");
            JLabel label3=new JLabel("监听点击的建");
            JPanel panel2=new JPanel();  public keyevent()

       Container cp=frame.getContentPane();
        cp.setLayout(new BorderLayout());
        cp.add(panel,BorderLayout.CENTER);
        panel2.setLayout(new FlowLayout(FlowLayout.LEFT));
        panel2.add(label1);
        panel2.add(label2);
        panel2.add(label3);
        cp.add(panel2,BorderLayout.SOUTH);
         frame.setBounds(300,200,400,300);
        frame.setVisible(true);
        panel.addKeyListener(this);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}public static void main(String[] args)
{
      keyevent diao=new keyevent();
}
public void keyPressed(KeyEvent event)
{
  label1.setText("你按的建是");
}
public void keyReleased(KeyEvent e)
{
     label2.setText("是你松开的建");
}
public void keyTyped(KeyEvent e)
{
  label3.setText("是你点击的建");
}
}
请问这里哪里出错了,请帮我改一下,谢谢了.

解决方案 »

  1.   

    界面能出来,你的意思是想知道你按的是哪个键吧?这样的话你应该从e这个对象中去取。具体看API和awt、Swing事件模型。
      

  2.   

    帮你简单改了下,你可以继续调试了.还是鼓励像这样提问的,至少有代码,并且不是什么都不会的情况下写出来的.import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class keyevent implements KeyListener {
    JFrame frame = new JFrame("监听键盘事件");
    JPanel panel = new JPanel();
    JLabel label1 = new JLabel("监听按下的建");
    JLabel label2 = new JLabel("监听松开的建");
    JLabel label3 = new JLabel("监听点击的建");
    JPanel panel2 = new JPanel(); public keyevent() {
    Container cp = frame.getContentPane();
    cp.setLayout(new BorderLayout());
    cp.add(panel, BorderLayout.CENTER);
    panel2.setLayout(new FlowLayout(FlowLayout.LEFT));
    panel2.add(label1);
    panel2.add(label2);
    panel2.add(label3);
    cp.add(panel2, BorderLayout.SOUTH);
    frame.setBounds(300, 200, 400, 300);
    frame.setVisible(true);
    frame.addKeyListener(this);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    } public static void main(String[] args) {
    keyevent diao = new keyevent();
    } public void keyPressed(KeyEvent event) {
    label1.setText("你按的建是" + event.getKeyCode());
    } public void keyReleased(KeyEvent e) {
    label2.setText("是你松开的建" + e.getKeyCode());
    } public void keyTyped(KeyEvent e) {
    label3.setText("是你点击的建" + e.getKeyCode());
    }
    }
      

  3.   

    import java.awt.event.*;import javax.swing.JFrame;
    import javax.swing.JLabel;@SuppressWarnings("serial")
    public class ClientFrame extends JFrame implements KeyListener {

    private JLabel label;

    {
    label = new JLabel("wow");
    }
    public ClientFrame() {
    setSize(640, 480);
    add(label);
    addKeyListener(this);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    } public static void main(String[] args) {
    new ClientFrame();
    }

    public void keyPressed(KeyEvent e) {
    System.out.println("OK");
    label.setText("give me five");
    } public void keyReleased(KeyEvent e) {
    System.out.println("NOT ok");
    } public void keyTyped(KeyEvent e) {
    System.out.println("absolutely OK");
    } }还是跟我混的好..   呵呵.. 我刚开始一直把keylistener 当成 mouse 来测试..寒死...