|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.01.2016, 16:25 | #1 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
ListSelectionListener
Добрый день! Я совершенно запуталась в этом ListSelectionListener и когда вызывается valueChanged. Помогите, пожалуйста разобраться.
Для начала есть глобальная переменная Код:
На форме есть JList, в котором отображается DefaultListModel<Person>, кнопка, по которой создается новая запись и поле, в которое заносится фамилия. При нажатии кнопки Код:
Потом мы в JList выделяем этот объект и надо его отредактировать, чтобы заполнить поля. У поля на форме есть слушатель Код:
Код:
Новая запись создается нормально. Потом мы ее выбираем, и когда хотим редактировать, то при обновлении JList, вызывается valueChanged, выделение уходит и вылетает NPE на строке if (currObject.getLastName()==null) fldLastName.setText("");... |
13.01.2016, 17:19 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Может запись без данных приравнивается к NULL и удаляется. Вставьте вместо пустой строки, типа "Новая папка" потом "Новая папка (2)" и т.д. Если будет работать нормально, думайте что писать вместо новой папки, или меняйте алгоритм.
|
13.01.2016, 20:22 | #3 | |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
Цитата:
Я думаю, что вот тут list.setListData(createArray(currOb ject).toArray());, когда обновляется JList и пропадает выделение, вот эта строка currObject = (Person)list.getSelectedValue(); присваивает что-то не то, поэтому дальше идет ссылка на нулл. Но вот почему так и как исправить, не могу понять Уважаемые форумчане, простите за так много букв, но форум творит чудеса... 2 дня мучилась, а написала, все по полочкам разложила и разобралась. Помогла строка list.setSelectedValue(currObject, true);, добавленная в нужном месте после обновления списка. Спасибо за внимание! Последний раз редактировалось yulia; 13.01.2016 в 20:43. |
|