尝试从商店获取元素时出现NullPointerException

时间:2013-02-06 15:44:55

标签: java arrays swing nullpointerexception settext

我有一个包含以下类别的挥杆应用程序:

ControllerGUI:加载我的mainform
日期:用于将数字从输入转换为日期格式
员工:扩展人员类,设置薪水,职称等变量 MainForm:swing gui
Person:为其他细节设置变量,如name,gender,dob
存储:保存数组Employee [] list;

我有一个displayInformation JPanel,我想在商店的JTextFields中显示名称,工资,职位等,然后允许用户使用下一个和上一个按钮浏览条目。但是,当我试图让它首先工作时,我遇到了NullPointerException。

在我的MainForm中,我添加了一个新的商店

Store testStore = new Store(100);

我希望数组中的元素能够输出到不同的JTextFields,如:

showName.setText(testStore.list[listIndex].name);

(其中listIndex是我启动的int) 但是从那里我得到一个NullPointerException,如果我取消.name或.salary我想要得到的任何东西,错误就会消失,但显然代码中没有任何意义。

非常感谢任何帮助!

 public class Store implements Serializable {
    private static int MAXSIZE; // holds the size of the array
    private static int count; // keeps count of number of persons stored in
                                // array

    Employee[] list; // array for storing person objects

    public Store(int size) {
        list = new Employee[size];
        MAXSIZE = size;
        count = 0;
    }

1 个答案:

答案 0 :(得分:3)

这是因为:

testStore.list[listIndex]

为空。

您可以使用:

showName.setText(testStore.list[listIndex] == null ? null : testStore.list[listIndex].name);

实际上,更好的方法是在Person类中使用setter和getter,然后使用:

testStore.list[listIndex].getName()

获取此人的姓名。