2010-11-25 91 views
1

//Customer.java我应该如何解决这种错误的

import javax.swing.*; 
public class Customer 
{ 
//variables for from window 

static JFrame frameObj; 
static JPanel panelObj; 

// variables for labels 

JLabel labelCustomerName; 
JLabel labelCustomerCellNo; 
JLabel labelCustomerPackage; 
JLabel labelCustomerAge; 

// Variables for data entry controls 

JTextField textCustomerName; 
JTextField textCustomerCellNo; 
JComboBox comboCustomerPackage; 
JTextField textCustomerAge; 

public static void main(String args[]) 
    { 
     Customer CustObj = new Customer(); 
    } 

public Customer() 
    { 

      ///Add the appropriate controls to the frame in the construcor 
      ///Create Panel 
      panelObj= new JPanel(); 
      frameObj.getContentPane().add(panelObj); 

      ///Setting close button 
      frameObj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      ///Create and add the appropriate controls 

      ///Initializing the labels 

      labelCustomerName = new JLabel("Customer Name: "); 
      labelCustomerCellNo = new JLabel("Cell Number: "); 
      labelCustomerPackage = new JLabel("Package: "); 
      labelCustomerAge = new JLabel("Age: "); 

      ///NIintialzing the data entry Controls 
      textCustomerName = new JTextField(30); 
      textCustomerCellNo = new JTextField(15); 
      textCustomerAge = new JTextField(2);  
      String packages[] = { "Executive" , "Standard"}; 
      comboCustomerPackage = new JComboBox(packages); 

      ///Adding Controls to the Customer Name 
      panelObj.add(labelCustomerName); 
      panelObj.add(textCustomerName); 

      ///Adding Controls to the Customer Cell Number 
      panelObj.add(labelCustomerCellNo); 
      panelObj.add(textCustomerCellNo); 

      ///Adding Controls to the Customer Age 
      panelObj.add(labelCustomerAge); 
      panelObj.add(textCustomerAge); 

      ///Adding Controls to the Customer Package 
      panelObj.add(labelCustomerPackage); 
      panelObj.add(comboCustomerPackage); 

    } 

} 

//当我执行这个程序,我得到它说

exception in thread "main" java.lang.NullPointerException 
at Customer.<init>(Customer.java:35) 
at Customer.<init>(Customer.java:26) 

回答

2

frameObj尚未初始化错误/分配给,所以它是NULL。打电话给它getContentPane()会给你一个NullPointerException

3

的问题是在这条线:

frameObj.getContentPane().add(panelObj); 

看看frameObj是如何定义的:

static JFrame frameObj; 

它从来没有真正得到初始化。当您尝试获取其内容窗格时,它仍然为空。这就是Nul​​lPointerException的意思 - 你试图在一个null对象上运行一个方法。

尝试改变frameObj调用此:

static JFrame frameObj = new JFrame(); 

这应该解决这个问题。