用netbean创建了一个app,里面就一个button和textField,然后我想为button增加的KeyPress事件,就选中,右击,通过ide环境,增加了如下代码,但是怎么安都没有我想要的效果:
 private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
        // TODO add your handling code here:
        if(evt.getKeyCode()==KeyEvent.VK_0)   //其实我本来写VK_CONTROL的,没反应,就换了
        {
        jTextField1.setText("sdfsdf");
        }
    }                        1.问题出在哪里?谢谢
2.其实我是希望一按下CTRL+ENTER就能够在jTextField里面输出文字,但是不知道怎么写,才能定义这个全局的快捷键,所以先弄个简单的,但是没想到简单的都没反应。。全部代码在这:http://oryx.5d6d.com/viewthread.php?tid=42&extra=page%3D1&frombbs=1

解决方案 »

  1.   

    请问楼上,这个代码应该放在哪里?我用nb自动生成的框架代码,放在红色的地方,有错,但是我想不出放在哪里好,initComonets这个函数灰色的,不让编辑
    package _try;import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;/**
     *
     * @author naruto
     */
    public class NewJFrame extends javax.swing.JFrame {    /** Creates new form NewJFrame */
        public NewJFrame() {
            initComponents();
            监听目标.addXXXListener    }    /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {        jButton1 = new javax.swing.JButton();
            jTextField1 = new javax.swing.JTextField();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyPressed(java.awt.event.KeyEvent evt) {
                    formKeyPressed(evt);
                }
            });        jButton1.setText("jButton1");        jTextField1.setText("jTextField1");        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addGap(96, 96, 96)
                            .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 162, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(layout.createSequentialGroup()
                            .addGap(138, 138, 138)
                            .addComponent(jButton1)))
                    .addContainerGap(142, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(89, 89, 89)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 54, Short.MAX_VALUE)
                    .addComponent(jButton1)
                    .addGap(40, 40, 40))
            );        pack();
        }// </editor-fold>                            private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
            // TODO add your handling code here:
            if(evt.getKeyCode()==KeyEvent.VK_0)
            {
            jTextField1.setText("sdfsdf");
            }
        }                                   /**
        * @param args the command line arguments
        */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NewJFrame().setVisible(true);
                    
                }
            });
        }    // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JTextField jTextField1;
        // End of variables declaration                   }
      

  2.   

    JFrame默认是不接受焦点事件的
    需要
    setFocusable(true);
      

  3.   

    jButton1.addKeyListener(new java.awt.event.KeyAdapter() { 
                public void keyPressed(java.awt.event.KeyEvent evt) { 
                    formKeyPressed(evt); 
                } 
            }); 
    // 才对,你原来写的是JFrame的键盘事件!
      

  4.   

    红色地方
    目标.addKeyListener(this)