0

NetBeans IDE 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アプレットビューアで。

エラーなしで正常に動作する別の PC で同じコードを試しました。これは何らかのバグまたはエラーですか?

4

1 に答える 1

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 を最初にインスタンス化する必要があります。

于 2014-07-02T14:54:24.057 に答える