我有一个包含以下类别的挥杆应用程序:
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;
}
答案 0 :(得分:3)
这是因为:
testStore.list[listIndex]
为空。
您可以使用:
showName.setText(testStore.list[listIndex] == null ? null : testStore.list[listIndex].name);
实际上,更好的方法是在Person类中使用setter和getter,然后使用:
testStore.list[listIndex].getName()
获取此人的姓名。