0

我有一个带有以下类的摇摆应用程序:

ControllerGUI:加载我的主窗体
Date:用于将输入的数字转换为日期格式
Employee:扩展人员类并设置变量,如薪水、职位
MainForm:摇摆 gui
人员:设置其他详细信息的变量like name,gender,dob
Store:存放数组Employee[]列表;

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

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

Store testStore = new Store(100);

我希望将数组中的元素输出到不同的 JTextField,例如:

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;
    }
4

1 回答 1

3

发生这种情况是因为:

testStore.list[listIndex]

一片空白。

您可以使用:

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

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

testStore.list[listIndex].getName()

获取 Person 的名称。

于 2013-02-06T15:48:09.470 回答