Jlist - ClearSelection с шаблоном наблюдателя
Это мой первый пост, у меня проблема в приложении, я программирую на Java.
Мне нужно реализовать шаблон наблюдателя, потому что у меня есть главное окно, и мне нужно добавить элементы. Когда я добавляю элемент, главное окно должно быть обновлено. Я помещаю реализации и расширяет Observable и Observer в нужные классы и в главном окне, я также переопределяю метод обновления. Но когда обновление выполняется, оно выдает мне исключение.
Вот код и исключение:
@Override
public void update(Observable o, Object arg) {
// Update Hotels
this.popularHoteles(unDepartamento.getListaHoteles());
}
private void popularHoteles(ArrayList<Hotel> Hoteles) {
listaHoteles.removeAll();
if (fechasCorrectas()) {
listaHoteles.setListData(Hoteles.toArray());
}
}
где "listaHoteles" - это элемент Jlist на моем сайте.
когда я выполняю setListDadta, я получаю это исключение:
Исключение в потоке "AWT-EventQueue-0" java.lang.NullPointerException в diaztaranto.interfaces.MenuPrincipal.listaHotelesValueChanged(MenuPrincipal.java:937) в diaztaranto.interfaces.MenuPryincipal.access$80inter)..MenuPrincipal$9.valueChanged(MenuPrincipal.java:345) в javax.swing.JList.fireSelectionValueChanged(JList.java:1798) в javax.swing.JList$ListSelectionHandler.valueChanged(JList.jav..fireValueChanged(DefaultListSelectionModel.java:184) при javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:164) в javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:211) в javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel. Java:405) в javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:415) в javax.swing.DefaultListSelectionModel.removeSelectionIntervalImpl(DefaultListSelectionModel.java:576) по адресу javax.swing.DefaultListSelectionModel.clearSelection(DefaultListSelectionModel.java:420) по адресу javax.swing.JList.clearSelection(JList.java:2045) в diaztaranto.interfaces.MenuPleincip.8p.) в diaztaranto.interfaces.MenuPrincipal.update(MenuPrincipal.java:1043) в java.util.Observable.notifyObservers(Observable.java:159) в java.util.Observable.notifyObservers(Observable.java:115) в диаза.Hotel.agregarComentario(Hotel.java:212) в diaztaranto.interfaces.Evaluacion.botonEvaluarActionPerformed(Evaluacion.java:135) в diaztaranto.interfaces.Evaluacion.access$000(Evaluacion.java:6) в diaztaranto.actionPerformed(Evaluacion.java:56) в javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) в javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) по умолчанию в javax.swiretonlb.Ford..java:402) на javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) в javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) в java.awt.Component.processMouseEvent(Component.java:6505) в javax.Com..processMouseEvent(JComponent.java:3321) в java.awt.Component.processEvent(Component.java:6270) в java.awt.Container.processEvent(Container.java:2229) в java.awt.Component.dispatchEventImpl(Component. Java:4861) в java.awt.Container.dispatchEventImpl(Container.java:2287) в java.awt.Component.dispatchEvent(Component.java:4687) в java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:48) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) в java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) в java.awt.Container.dispatchEventImpl(Container.java:2273) в java.aw.dispatchEventImpl(Window.java:2719) в java.awt.Component.dispatchEvent(Component.java:4687) в java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729).) в java.awt.EventQueue.access$200(EventQueue.java:103) в java.awt.EventQueue$3.run(EventQueue.java:688) в java.awt.EventQueue$3.run(EventQueue.java:686) в java.security.AccessController.doPrivileged(собственный метод) по адресу java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) по адресу java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87t $4Event из 4 выпусков Java)..run(EventQueue.java:702) в java.awt.EventQueue$4.run(EventQueue.java:700) в java.security.AccessController.doPrivileged(собственный метод) в java.security.ProtectionDomain $ 1.doIntersectionPrivilej (ProtectionDomain).: 76) в java.awt.EventQueue.dispatchEvent(EventQueue.java:699) в java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) в java.awt.EventDispatchThread.pavaThF (jDjF) ().awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) в java.awt.EventDispatchThread.run(EventDispatchThread.java:91).
Кто-нибудь знает, почему это происходит?
Спасибо за совет!