if(e.getKeyCode()==KeyEvent.VK_F2)
==号换成equals()

解决方案 »

  1.   

    我估计是你的Frame根本就没有接受到KeyPressed事件
      

  2.   

    在JFrame构造函数中加上
    this.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    this_keyPressed(e);
                }
     
            });
      

  3.   

    BluePig:你所说的我的脚本中也写上了
      

  4.   

    试试这个例子,我刚写的,肯定行
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    class Test extends JFrame
    {
    public Test()
    {
    this.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    this_keyPressed(e);
                }
     
            });
    }
    void this_keyPressed(KeyEvent e) {
    if(e.getKeyCode()==KeyEvent.VK_F2)
    System.out.println("F2");
        }
    public static void main(String[] args)
    {
    Test t=new Test();
    t.setSize(300,300);
    t.setVisible(true);
    }

    }
      

  5.   

    你运行这个了吗?我这里真的不行呀
    我是在jbuilder里编写的,所以你所说的
    this.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    this_keyPressed(e);}};是自动生成的。
      

  6.   

    我刚刚运行过!!!这是气死我了,屏幕上明明打印出“F2”了!!
    你不要运行你的程序,就把我这个拷贝到JB中试试
    我估计是你的JFrame上有别的东西,比如JTextField,嘿嘿,这时候JFrame就接收不到KeyPressed了,你应该在JTextField的KeyPressed中加代码
      

  7.   

    先这么写,看看是否能输出"aaaaa",如果能,证明事件已经响应,那就是addNewRow()方法的问题了。
    void this_keyPressed(KeyEvent e) {
        if(e.getKeyCode()==KeyEvent.VK_F2){
          System.out.print("aaaaa");
          addNewRow();
         }
    }
      

  8.   

    Swing的键盘事件处理不是这么做的,每个控件都在LookAndFeel中定义了一套InputMap和ActionMap,由系统控制焦点和响应key-action对。具体方法在Java2图形编程swing卷中有一点描述。如果要给JComponent加上KeyListener,也不是不可以,但是可能会造成冲突或者是意外的结果。
      

  9.   

    BluePig(吹猪):你所说的我也运行了,是可以输出f2,但我这个窗口是作为内部窗口的,f2就显示不出来了。请问还有其他的方法吗?
    namowen(寒号不已): 这里aaaaa都无法输出,这个窗口是个内部窗口。
    方法是没错的,点击这个按钮其功能是实现的。
      

  10.   

    this.getContentPane().addKeyListener(new java.awt.event.KeyAdapter() 代替this.addKeyListener(new java.awt.event.KeyAdapter() 即可