У меня возникла небольшая проблема с JComboBox и MCV Pattern.Проблема с комбинацией и шаблоном MVC
В моем пакете «Вид» у меня есть класс gui. Это содержит выпадающий список.
package view;
public class Gui {
.........
public JComboBox<OceanObject> oceanBoxDelete = new ComboBox<OceanObject>
();
this.down.add(this.oceanBoxDelete);
this.oceanBoxDelete.setSize(40, 1);
.......
Это также содержит кнопку. Если кнопка попадает в нее, она запускает свист через прослушиватель кнопок/прослушиватель действий. Этот переключатель должен запускать процедуру с удалением объекта из списка. Если я помещаю прослушиватель действий в один и тот же файл java, он работает, но мне не разрешено это делать. Если я помещаю его в файл прослушивателя кнопок, я получаю исключение нулевого указателя при входе в combobox с неизвестным источником комментария и.
Моя кнопка слушатель выглядит следующим образом:
package control;
import view.Gui;
public class ButtonListener implements ActionListener{
private Gui gui;
public ButtonListener() {
this.ocean = ocean;
}
@Override
public void actionPerformed(ActionEvent ae) {
switch (ae.getActionCommand()) {
....
case "Delete":
System.out.println("deleteButton wurde gedrueckt.");
OceanObject oObject = (OceanObject)
gui.oceanBoxDelete.getSelectedItem());
go.removeOceanOjectFromOcean(oObject);
.......
Я могу видеть, что правый переключатель срабатывает, поскольку Println отображается прямо в консоли.
Так что я думаю, проблема в том, что проблема заключается в том, что getSelectedItem can not видит combobox, и мне нужно сообщить ему об этом, но как?
Так что мне нужно инициализировать gui @ the 'code' (public ButtonListener())? Как я это делаю правильно? –
@ KaiStümer Вы можете передать ссылку на 'gui' или' oceanBoxDelete' на конструктор 'ButtonListener' и установить там личное поле. – Cinnam
Пробовал это, ничего не изменил. Возможно, для этого есть другое решение. Могу ли я подставить 'gui.oceanBoxDelete.getSelectedItem()) каким-либо другим способом или изменить его, чтобы доступ к combobox был доступен, и действительно выбранный объект был прочитан? –