2017-01-09 116 views
0

当我创建我的JList时,我可以使用getSelectedValue()打印出我在列表中选择的字符串。只要我改变列表中的内容,所有返回的内容都是null。JList - `setListData()`导致`getSelectedValue()`返回空值

当创建列表我有这样的:

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中包含字符串数组:在JList的,但如果阵列显示器内

matchList.setListData(Bracket.wr1); 

一切我尝试使用getSelectedValue()来获取正在显示的字符串,它只是返回null。

我在做什么错?

+0

HM所以唯一的问题是,有改变的选项后,没有选择的项目? – torkleyy

回答

0

似乎没有选择了。按照Oracle DocumentationgetSelectedValue()

[R]如果没有选择eturns空。

所以,如果没有默认的选择了,你应该刚刚成立的第一个元素作为默认:

list.setSelectedIndex(0); 
+0

好吧,它不再返回null,但现在我只能选择列表中的第一个选项。程序的工作方式是从JList中选择一个项目,然后点击按钮输入信息。我认为发生了什么事是一旦按钮被击中,列表中不再有选择。我现在知道列表的内容不是导致问题的原因。 – sumsum2

+0

@ sumsum2你能否给我一个[MCVE](http://stackoverflow.com/help/mcve),以便我可以重现这个问题? – torkleyy

+0

@ sumsum2也,如果内容不是问题,我很难找出是什么导致这种行为与您当前的代码段 – torkleyy