Java JList-`setListData()`导致`getSelectedValue()`返回null
当我创建JList时,我可以使用getSelectedValue()打印出我在列表中选择的字符串。一旦我更改列表中的内容,返回的所有内容都是空的 创建列表时,我有以下内容:Java JList-`setListData()`导致`getSelectedValue()`返回null,java,arrays,jlist,Java,Arrays,Jlist,当我创建JList时,我可以使用getSelectedValue()打印出我在列表中选择的字符串。一旦我更改列表中的内容,返回的所有内容都是空的 创建列表时,我有以下内容: matchList.setModel(new javax.swing.AbstractListModel<String>() { String[] playerList = {"test"}; public int getSize() { return playerList.length; }
matchList.setModel(new javax.swing.AbstractListModel<String>() {
String[] playerList = {"test"};
public int getSize() { return playerList.length; }
public String getElementAt(int i) { return playerList[i]; }
});
数组中的所有内容都显示在JList中,但如果我尝试使用getSelectedValue()获取显示的字符串,它只会返回null
我做错了什么?似乎没有选择了。根据
getSelectedValue()
[r] 如果没有选择,则返回null
因此,如果不再有默认选择,您可能只需将第一个元素设置为默认值:
list.setSelectedIndex(0);
嗯,那么唯一的问题是在更改选项后没有选择项?好的,它不再返回null,但是现在我只能选择列表上的第一个选项。该程序的工作方式是从JList中选择一个项目,然后点击按钮输入信息。我认为一旦按下按钮,列表上就不再有选择了。我现在知道列表中的内容不是问题的原因。@sumsum2您能不能提供一个列表,让我重现问题?@sumsum2另外,如果内容不是问题,我很难找出您当前的代码片段是什么导致了这种行为,就像它在网站上说的那样,我建议您创建一个新项目,并使用您认为与问题相关的最少代码。这样,你甚至可以自己解决问题/更准确地描述问题所在。
list.setSelectedIndex(0);