Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试从存储中获取元素时出现NullPointerException_Java_Arrays_Swing_Nullpointerexception_Settext - Fatal编程技术网

Java 尝试从存储中获取元素时出现NullPointerException

Java 尝试从存储中获取元素时出现NullPointerException,java,arrays,swing,nullpointerexception,settext,Java,Arrays,Swing,Nullpointerexception,Settext,我有一个包含以下类的swing应用程序: ControllerGUI:加载我的主窗体 日期:用于将输入的数字转换为日期格式 Employee:扩展person类并设置诸如工资、职务等变量 主窗体:swing gui 人员:为姓名、性别、出生日期等其他详细信息设置变量 Store:保存数组中的职员[]列表 我有一个displayInformation JPanel,我想在商店的JTextFields中显示姓名、薪水、职务等,然后允许用户使用next和previous按钮浏览条目。然而,当我试图让它

我有一个包含以下类的swing应用程序:

ControllerGUI:加载我的主窗体
日期:用于将输入的数字转换为日期格式
Employee:扩展person类并设置诸如工资、职务等变量
主窗体:swing gui
人员:为姓名、性别、出生日期等其他详细信息设置变量
Store:保存数组中的职员[]列表

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

在我的主窗体中,我添加了一个新商店

Store testStore = new Store(100);
我希望将数组中的元素输出到不同的JTextFields,如:

showName.setText(testStore.list[listIndex].name);
(其中listIndex是一个整数I) 但是从那以后,我得到了一个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;
    }
这是因为:

testStore.list[listIndex]
是空的

您可以使用:

showName.setText(testStore.list[listIndex] == null ? null : testStore.list[listIndex].name);
实际上,更好的方法是在Person类中使用setter和getter,然后使用:

testStore.list[listIndex].getName()
获取此人的姓名。

发生这种情况的原因是:

testStore.list[listIndex]
是空的

您可以使用:

showName.setText(testStore.list[listIndex] == null ? null : testStore.list[listIndex].name);
实际上,更好的方法是在Person类中使用setter和getter,然后使用:

testStore.list[listIndex].getName()

获取此人的姓名。

我们可以非常确定变量为null,因为“如果我去掉.name或.salary,不管我想得到什么,错误都会消失,但显然代码中没有任何意义。”。遗憾的是,这并没有真正回答他的问题是的,它是空的。哦,我只是想补充一下,即使我在person类中这样做并初始化变量(在通过gui中的数据输入之前)受保护的字符串name=“blah”也会出现此错误@cowls很难知道到底是什么问题,但我添加了一个解决方案。谢谢澄清!更好的是,至少现在有了一个可能的解决方案:)。我怀疑这不是ThoughThank@baraky的根本原因,但出于某种原因,这也不起作用。您建议的第一位代码没有任何作用,textfield只是空的。第二段代码,即使我的Person类中有setter和getter,仍然给了我NullPointerException。我们可以非常确定变量为null,因为“如果我去掉.name或.salary,不管我想得到什么,错误都会消失,但显然代码中没有任何意义。”。遗憾的是,这并没有真正回答他的问题是的,它是空的。哦,我只是想补充一下,即使我在person类中这样做并初始化变量(在通过gui中的数据输入之前)受保护的字符串name=“blah”也会出现此错误@cowls很难知道到底是什么问题,但我添加了一个解决方案。谢谢澄清!更好的是,至少现在有了一个可能的解决方案:)。我怀疑这不是ThoughThank@baraky的根本原因,但出于某种原因,这也不起作用。您建议的第一位代码没有任何作用,textfield只是空的。第二段代码,尽管我的Person类中确实有setter和getter,但仍然给了我NullPointerException。我们需要看看列表是如何初始化的,您是否希望数组的该元素中有一个有效的雇员?将代码添加到我文章的底部。我想做的就是在添加员工之后,让用户能够在单独的JPanel中查看详细信息,所以将数组中的每个详细信息(姓名、dob等)加载到文本字段中。当然,当程序启动时,数组是空的。我们需要看看列表是如何初始化的,你希望数组中的元素有一个有效的员工吗?在我的帖子底部添加了代码。我想做的就是在添加员工之后,让用户能够在单独的JPanel中查看详细信息,所以将数组中的每个详细信息(姓名、dob等)加载到文本字段中。当然,当程序启动时,数组是空的