JList - `setListData()`导致`getSelectedValue()`返回null

时间:2017-01-09 17:14:38

标签: java arrays jlist

当我创建JList时,我可以使用getSelectedValue()打印出我在列表中选择的字符串。一旦我更改了列表中的内容,返回的所有内容都为null。

创建列表时我有:

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更改为包含字符串数组:

matchList.setListData(Bracket.wr1);

数组中的所有内容都显示在JList中,但如果我尝试使用getSelectedValue()来获取显示的String,则只返回null。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

似乎没有选择了。根据{{​​3}} getSelectedValue()

  如果没有选择,

[r] eturns为null。

因此,如果没有默认选择,您应该只将第一个元素设置为默认值:

list.setSelectedIndex(0);