2014-07-02 59 views
0

我嘗試的NetBeans IDE 8.0以下代碼:開始:在NetBeans IDE的Applet未初始化錯誤8.0

public class ChoiceProgramDemo extends Applet implements ItemListener{ 

    Label l1 = new Label(); 
    Choice Product; 

    @Override 
    public void init() { 
     String[] ProductList = new String[4]; 
     ProductList[0]="Pen"; 
     ProductList[1]="Pencil"; 
     ProductList[2]="Eraser"; 
     ProductList[3]="NoteBook"; 

     for(int i=0;i<ProductList.length;i++) 
     { 
      Product.insert(ProductList[i], i); 
     } 

     add(Product); 
     add(l1); 
     Product.addItemListener(this); 
    } 
    public void itemStateChanged(ItemEvent ie) 
    { 
     int Selection; 
     Selection=Product.getSelectedIndex(); 
     System.out.println(Selection); 
    } 
} 

但我收到以下錯誤:

java.lang.NullPointerException 
    at ChoiceProgramDemo.init(ChoiceProgramDemo.java:35) 
    at sun.applet.AppletPanel.run(AppletPanel.java:435) 
    at java.lang.Thread.run(Thread.java:745) 

Start: Applet not initialized在Applet查看器。

我在另一臺沒有任何錯誤的PC上工作的同樣的代碼。 這是任何類型的錯誤或錯誤?

+0

「產品」在哪裏實例化?第35行不會是'for'循環中的行,是嗎? – Paul

+0

是的,它是行號35. – MrShadow

+0

1)爲什麼要編寫一個小程序?如果這是由於規格。由老師,請參考[爲什麼CS老師應該停止教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)。 2)爲什麼選擇AWT而不是Swing?看到我對[Swing extras over AWT]的回答(http://stackoverflow.com/a/6255978/418556)有很多很好的理由放棄使用AWT組件。 –

回答

1

在添加項目之前,您需要實例化Choice

@Override 
public void init() { 
    // you are missing this line 
    Choice Product = new Choice(); 
    // 
    String[] ProductList = new String[4]; 
    ProductList[0]="Pen"; 
    ProductList[1]="Pencil"; 
    ProductList[2]="Eraser"; 
    ProductList[3]="NoteBook"; 

    for(int i=0;i<ProductList.length;i++) 
    { 
     Product.insert(ProductList[i], i); 
    } 

    add(Product); 
    add(l1); 
    Product.addItemListener(this); 
} 

我不知道爲什麼相同的代碼可以在另一臺PC上工作,除非它不是相同的代碼。無論你在哪裏運行它,你仍然需要首先實例化Choice。