【发布时间】:2010-04-23 13:03:01
【问题描述】:
我知道标题听起来令人困惑,因为它确实如此。它有点长,所以也请留在我身边。
这是我设计的代码布局
变量 构造函数 方法。
我也在尝试填写完整的 Jlist 名称。我也想使用一种方法来获取这些名称。就这样吧。
在我的变量中,我有我的 JList。它称为contactNames; 我还有一个存储 5 个字符串的数组,这些字符串是联系人姓名; 无论如何,继承人的代码
String contact1;
String contact2;
String contact3;
String contact4;
String contact5;
String[] contactListNames;
JList contactList;
足够简单。然后在我的构造函数中,我定义了 Jlist 以用数组的内容填充自己
String[] contactListNames = new String[5];
JList contactList = new JList(contactListNames);
fillContactList();
fillContactList() 方法即将推出。
现在这里的东西得到了球。 我创建了三种不同的方法,但都没有奏效。基本上我试图用所有这些填充数组。 这是最简单的。它没有设置 Jlist,它没有做任何复杂的事情。它所做的只是一次填充一个数组
public void fillContactList()
{
for(int i = 0;i<3;i++)
{
try
{
String contact;
System.out.println(" please fill the list at index "+ i);
Scanner in = new Scanner(System.in);
contact = in.next();
contactListNames[i] = contact;
in.nextLine();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
不幸的是,这不起作用。我得到打印出来以在索引 0 处填充它;我输入了一些东西,我得到了一个很好的大堆栈跟踪,从
contactListNames[i] = contact;
所以简而言之我的问题是
为什么我不能用那个方法填充数组。
**************************************************** 888 *****************************************************888
请求的堆栈跟踪 请填写索引 0 处的列表
overtone
please fill the list at index 1
java.lang.NullPointerException
at project.AdminMessages.fillContactList(AdminMessages.java:410)
at project.AdminMessages.<init>(AdminMessages.java:91)
at project.AdminUser.createAdminMessages(AdminUser.java:32)
at project.AdminUser.<init>(AdminUser.java:18)
at project.AdminUser.main(AdminUser.java:47)
【问题讨论】:
-
回答您的第一个问题:是的,您可以将数组传递给 JList 的构造函数。您只需要修复数组的初始化,正如@Jeff 在下面建议的那样。
标签: java arrays constructor jlist