【问题标题】:NullPointerException when trying to get element from store尝试从商店获取元素时出现 NullPointerException
【发布时间】:2013-02-06 15:44:54
【问题描述】:

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

ControllerGUI:加载我的主窗体
日期:用于将输入的数字转换为日期格式
Employee:扩展person类并设置变量,如薪水、职位
主窗体:swing gui
人员:为其他详细信息设置变量,例如姓名、性别、出生日期
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;
    }

【问题讨论】:

  • 我们需要看看列表是如何初始化的,您是否希望数组的那个元素有一个有效的员工?
  • 将代码添加到我的帖子底部。我要做的就是在添加员工之后,让用户能够在单独的 JPanel 中查看详细信息,因此将数组中的每个详细信息(姓名、出生日期等)加载到文本字段中。所以当然当程序启动时数组是空的

标签: java arrays swing nullpointerexception settext


【解决方案1】:

发生这种情况是因为:

testStore.list[listIndex]

为空。

你可以使用:

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

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

testStore.list[listIndex].getName()

获取人名。

【讨论】:

  • 我们可以很确定这个变量是空的,“如果我去掉 .name 或 .salary 任何我想得到的东西,错误就会消失,但显然代码中没有任何意义."。可悲的是,这并没有真正回答他的问题
  • 是的,它是空的。哦,只是补充一下,即使我在我的人员类中执行此操作并初始化变量(在通过 gui 中的数据输入之前)受保护的字符串名称 = "blah";
  • @cowls 很难知道问题到底是什么,但我添加了一个解决方案。感谢您的澄清!
  • 好多了,至少现在有一个可能的解决方案:)。我怀疑这不是根本原因
  • 感谢@baraky,但由于某种原因,这也不起作用。您建议的第一段代码什么都不做,文本字段只是空的。第二段代码,即使我的 Person 类中有 setter 和 getter,仍然给我 NullPointerException。
猜你喜欢
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
相关资源
最近更新 更多