2017-01-09 4 views
0

Когда я создаю свой JList, я могу использовать getSelectedValue() для печати строки, выбранной мной в списке. Как только я изменю то, что находится внутри списка, все, что возвращается, равно null.JList - `setListData()` вызывает `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.

Что я делаю неправильно?

+0

гм поэтому единственная проблема в том, что нет выбранного элемента после изменения параметров? – torkleyy

ответ

0

Кажется, что выбора больше нет. Согласно Oracle DocumentationgetSelectedValue()

[г] eturns нуль, если нет выбора.

Так что, если нет выбора по умолчанию не больше, вы, вероятно, следует просто установить первый элемент в качестве значения по умолчанию:

list.setSelectedIndex(0); 
+0

Хорошо, что он больше не возвращает null, но теперь у меня может быть только первый вариант в выбранном списке. Способ работы программы заключается в том, что вы выбираете элемент из JList, а затем нажимаете кнопку для ввода информации. Я думаю, что происходит, когда кнопка нажата, в списке больше нет выбора. Теперь я знаю, что содержимое списка не является тем, что вызывает проблему. – sumsum2

+0

@ sumsum2 Не могли бы вы предоставить мне [MCVE] (http://stackoverflow.com/help/mcve), чтобы я мог воспроизвести проблему? – torkleyy

+0

@ sumsum2 также, если содержимое не является проблемой, мне сложно узнать, что вызывает это поведение с вашим текущим фрагментом кода. – torkleyy

Смежные вопросы