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