创建jpanel或jdialog,我给容器add了键盘监听事件,要求我在显示这个容器时,按下f1键会弹出个JOptionPane。
关键代码如下:
    public void keyPressed(KeyEvent keyEvent) {
        int i = keyEvent.getKeyCode();
        if(i==keyEvent.VK_F1)
        {
              //this和null都不行这里 
            JOptionPane.showMessageDialog(this, "something");
        }
    }
}
没有编译错误,却不能弹出窗口,希望高手帮忙,最好给出个简单的例子代码,谢~~~~~~~~~~~~~~~

解决方案 »

  1.   

    调用方法setMnemonic('F1');
    addActionListener();
      

  2.   

    package dialog;import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;import javax.swing.JFrame;
    import javax.swing.JOptionPane;public class DialogMain { /**
     * @param args
     */
    public static void main(String[] args) {
    final JFrame frame = new JFrame();
    frame.setTitle("测试键盘弹出");
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.setSize(300, 400);
    frame.setVisible(true);

    frame.addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
    int code = e.getKeyCode();
    if (code == e.VK_F1) {
    JOptionPane.showMessageDialog(frame, "F1按下");
    }
    }

    });
    }}
    这些完整的代码,已经测试过了。