2013-07-12 179 views
-1

我使用了NetBeans GUI構建器。當我在apropreate空間中添加一個關鍵聽衆時,整個程序就會失靈。它說「class or enum expected」,我認爲這是括號中的問題。這裏是我的代碼的KeyListener搞亂了程序

package chess; 

public class NewJFrame extends javax.swing.JFrame { 
    public NewJFrame() { 
     initComponents(); 
    } 

    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jTextField1 = new javax.swing.JTextField(); 
     jTextField2 = new javax.swing.JTextField(); 
     jTextField3 = new javax.swing.JTextField(); 
     jLabel1 = new javax.swing.JLabel(); 
     jLabel2 = new javax.swing.JLabel(); 
     jLabel3 = new javax.swing.JLabel(); 
     jLabel4 = new javax.swing.JLabel(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
     addInputMethodListener(new java.awt.event.InputMethodListener() { 
      public void caretPositionChanged(java.awt.event.InputMethodEvent evt) { 
       formCaretPositionChanged(evt); 
      } 
      public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) { 
      } 
     }); 
     addKeyListener(new java.awt.event.KeyAdapter() { 
      public void keyPressed(java.awt.event.KeyEvent evt) { 
       formKeyPressed(evt); 
      } 
     }); 

     jTextField1.setText("jTextField1"); 

     jTextField2.setText("jTextField1"); 

     jTextField3.setText("jTextField1"); 
     jTextField3.addKeyListener(new java.awt.event.KeyAdapter() { 
      public void keyPressed(java.awt.event.KeyEvent evt) { 
       jTextField3KeyPressed(evt); 
      } 
     }); 

     jLabel1.setText("move to"); 

     jLabel2.setText("move from"); 

     jLabel3.setText("output:"); 

     jLabel4.setFont(new java.awt.Font("Century Gothic", 1, 24)); // NOI18N 
     jLabel4.setText("press \"p\" to procede"); 

     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(49, 49, 49) 
         .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addGap(77, 77, 77) 
         .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(60, 60, 60) 
         .addComponent(jLabel2) 
         .addGap(113, 113, 113) 
         .addComponent(jLabel1)) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(82, 82, 82) 
         .addComponent(jLabel3) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(56, 56, 56) 
         .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 287, javax.swing.GroupLayout.PREFERRED_SIZE))) 
       .addContainerGap(57, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(20, 20, 20) 
         .addComponent(jLabel2) 
         .addGap(18, 18, 18)) 
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
         .addContainerGap() 
         .addComponent(jLabel1) 
         .addGap(10, 10, 10))) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addGap(41, 41, 41) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jLabel3)) 
       .addGap(56, 56, 56) 
       .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(77, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold>       

    private void formCaretPositionChanged(java.awt.event.InputMethodEvent evt) {           
     // TODO add your handling code here: 
    }           

    private void jTextField3KeyPressed(java.awt.event.KeyEvent evt) {          
     // TODO add your handling code here: 
    }          

    private void formKeyPressed(java.awt.event.KeyEvent evt) {         
    public void keyTyped(KeyEvent e){}// every thing after this goes hay wire 
    }        

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the form */ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new NewJFrame().setVisible(true); 
      } 
     }); 
    } 
    // Variables declaration - do not modify      
    private javax.swing.JLabel jLabel1; 
    private javax.swing.JLabel jLabel2; 
    private javax.swing.JLabel jLabel3; 
    private javax.swing.JLabel jLabel4; 
    private javax.swing.JTextField jTextField1; 
    private javax.swing.JTextField jTextField2; 
    private javax.swing.JTextField jTextField3; 
    // End of variables declaration     
} 
+0

請出示完整的錯誤信息。 –

回答

3

該行從未編譯..

private void formKeyPressed(java.awt.event.KeyEvent evt) {         
public void keyTyped(KeyEvent e){}// every thing after this goes hay wire 
} 

你必須寫代碼,而不是存在。

這裏要添加的的KeyListener和調用私有方法。

addKeyListener(new java.awt.event.KeyAdapter() { 
     public void keyPressed(java.awt.event.KeyEvent evt) { 
      formKeyPressed(evt); 
     } 
    }); 

這是私人方法,然後你寫你的實現。

private void formKeyPressed(java.awt.event.KeyEvent evt) {         
    //write your implementation of keypressed here.. 
} 

順便說一句(最重要的),只是你學習我建議你不要使用NetBeans馬蒂斯,閱讀從Oracle擺動教程,例如Using Layout ManagerHow to use Keybindings

+0

+1鍵綁定 – MadProgrammer

+0

謝謝,但你的回答有些不清楚,我該怎麼回事呢? –

+0

@GheraKuznetsov寫什麼? 'formKeyPressed'?就像你與其他方法通常做 – nachokk