2011-07-02 99 views
1

有人可以幫助我,因爲我必須在明天結束之前將此項目加入進來嗎?NullPointerException設置文本字段的文本

每次我嘗試設置文本字段的文本時,我的程序崩潰並給出空指針異常。我該如何克服這一點?

下面是示例代碼中錯誤也發生:

/** Creates new form NewJFrame */ 
public NewJFrame() { 
    initComponents(); 
    jTextField1.setText("Yes"); 
} 

這是因爲尚未創建文本字段變量:在initComponents();

篩選後

package disciplinesys; 

public class NewJFrame extends javax.swing.JFrame { 

    /** Creates new form NewJFrame */ 
    public NewJFrame() { 
     jTextField1.setText("Yes"); 
     initComponents(); 
    } 

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

     jTextField1 = new javax.swing.JTextField(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(120, 120, 120) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(141, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(116, 116, 116) 
       .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(164, Short.MAX_VALUE)) 
     ); 

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

    /** 
    * @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.JTextField jTextField1; 
    // End of variables declaration 

} 

回答

6

呼叫jTextField1.setText("Yes");直到initComponents();

+1

並且不要使用NetBe創建你的Swing代碼,這樣你就會知道你在做什麼。 –

+0

非常感謝您的回答! – Kevin

+0

凱文,您應該點擊旁邊的複選標記將此答案標記爲已接受。 –