powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка событии JComboBox
5 сообщений из 5, страница 1 из 1
Ошибка событии JComboBox
    #38707725
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. У меня такой код:

Добавляю из БД список в CompanyList компании, при выборе компании загружается список сотрудников в другой список RespUsersList:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
companyVec = _safetyDatabase.getCompanyList();
		 for (int i = 0; i < companyVec.size(); i++) {
			_CompanyList.addItem(companyVec.elementAt(i).toString());
		}
		_CompanyList.addActionListener (new ActionListener () {
			public void actionPerformed(ActionEvent e) {
				if (_CompanyList.getSelectedIndex() > 0) {
					_RespUsersList.removeAllItems();
					respUsersVec = _safetyDatabase.getRespUsersList(_CompanyList.getSelectedItem().toString());
					for (int i = 0; i < respUsersVec.size(); i++) {
						_RespUsersList.addItem(respUsersVec.elementAt(i).toString());
					}

				}

			}
	    });	



А это событие RespUsersList просто должен присвоить значение выбранной записи из списка переменным:

Код: java
1.
2.
3.
4.
5.
6.
		_RespUsersList.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				 RespPersonID = _RespUsersList.getSelectedIndex() + 1;
			     RespPersonName = _RespUsersList.getSelectedItem().toString();
	        }
	    });



Выбираю компанию, список сотрудников загружается в компонент RespUsersList, при выборе след. компании выкидывает ошибку как будто список RespUsersList пустой:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at SafetyInspectionRegister.AddSafetyDialog$1.itemStateChanged(AddSafetyDialog.java:217)
	at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)
	at javax.swing.JComboBox.selectedItemChanged(Unknown Source)
	at javax.swing.JComboBox.contentsChanged(Unknown Source)
	at javax.swing.JComboBox.intervalRemoved(Unknown Source)
	at javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source)
	at javax.swing.DefaultComboBoxModel.removeAllElements(Unknown Source)
	at javax.swing.JComboBox.removeAllItems(Unknown Source)
	at SafetyInspectionRegister.AddSafetyDialog$2.actionPerformed(AddSafetyDialog.java:228)
	at javax.swing.JComboBox.fireActionEvent(Unknown Source)
	at javax.swing.JComboBox.setSelectedItem(Unknown Source)
	at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
	at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
	at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
....



Не могу понять, при выборе компании я сначало удаляю из списка _RespUsersList список сотрудников чтобы не добавлялось одно на другое, а он ругается как будто список пустой.
Кто нибудь подскажите как правильно работать со взаимосвязанными JComboBox да так чтобы при выборе из одного списка загружались данные в другой список и при повторном выборе из первого списка уже другого значения чтобы во втором списке старые данные удалялись а новые загружались.
Спасибо.
...
Рейтинг: 0 / 0
Ошибка событии JComboBox
    #38707794
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за вырвиглазный coding convention?

LiQuidвыкидывает ошибку как будто список RespUsersList пустой
Трудно угадывать где именно у вас 217-я строка. Почему вы решили что именно список пустой? Может getSelectedItem() вернул null потому что ничего не выбрано?

LiQuidКто нибудь подскажите как правильно работать со взаимосвязанными JComboBox да так чтобы при выборе из одного списка загружались данные в другой список и при повторном выборе из первого списка уже другого значения чтобы во втором списке старые данные удалялись а новые загружались.
Странно. Примеров должно быть масса в инете. Вам точно нужен Swing? На JavaFX через биндинг делается проще.
По-хорошему я бы сильнее разделил View от Model.
removeAllItems() + addItem() - не нужны. Я бы просто использовал combobox.setModel(new MyDataModel(myData)). Или бы даже пере-использовал Model.
Изучите концепцию Model в Swing и PropertyChangeSupport/PropertyChangeEvent/PropertyChangeListener - очень полезно для правильной работы с данными.
...
Рейтинг: 0 / 0
Ошибка событии JComboBox
    #38707797
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, например.
http://stackoverflow.com/questions/6246005/jcombobox-change-another-jcombobox

По-хорошему, если вы нацелены разрабатывать на Swing всерьез и на долго, то стоит так же ознакомиться с реализациями binding для Swing и паттерном Model-View-ViewModel
https://netbeans.org/kb/docs/java/gui-binding.html
https://kenai.com/projects/betterbeansbinding/pages/Home
...
Рейтинг: 0 / 0
Ошибка событии JComboBox
    #38708243
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гораздо проще переопределить метод toString() вашего entity (или dto) объекта, чтобы он возвращал имя элемента, и потом просто кидать список готовых объектов в модель JComboBox.
Код: java
1.
firstComboBox.setModel(new javax.swing.DefaultComboBoxModel(myList().toArray()));


Тогда при выборе элемента в JComboBox вы получаете уже готовый объект, из которого можно брать любые свойства и по ним ваши действия производить, например, выбрать связанные с этим объектом списки других объектов..
...
Рейтинг: 0 / 0
Ошибка событии JComboBox
    #38708255
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierГораздо проще переопределить метод toString() вашего entity (или dto) объекта, чтобы он возвращал имя элемента, и потом просто кидать список готовых объектов в модель JComboBox.

Не стоит toString() применять, ни для реализации уровня представления, ни для бизнес логики. toString() это внутреннее отладочное представление объекта.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка событии JComboBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]