Avatar billede bertelsenbo Nybegynder
29. oktober 2006 - 10:30 Der er 4 kommentarer og
1 løsning

2 afhængige JList's med selectionListener returnerer nullPointer

Hej Eksperter.

Jeg vil først beskrive problemet og så linker jeg til mine klasser, eftersom jeg synes det ville fylde for meget herinde.

I mit GUI har jeg 2 JList's og et tredje felt der er afhængige af hinanden. Den første JList(1) får en ArrayList af objekter vist (vha en model), når man klikker på ét af disse objekter på listen opdateres JList(2) med en anden række objekter. Dem kan man OGSÅ vælge hvilket viser en pris i et textarea eller popupbox.

Problemet er nu at hvis jeg ændrer min selection i JList(1) kommer den med en nullpointerexception når i koden under ListSelectionListener ved JList(2).
Det vil jeg gerne have løst. Ikke "bare" håndteret den exception korrekt, men undgå at den kan opstå.

Den lukker ikke mit GUI ned af den grund, men viser bare JList(2) meget forkert/distorted.

GUI: http://www.bo.bert.dk/mitGUI.txt <- fejlen opstår i linje 105
Kontrol: http://www.bo.bert.dk/kontrol.txt <- hvis i vil se min slam-kode.
Avatar billede bertelsenbo Nybegynder
29. oktober 2006 - 10:32 #1
Og husk nu det gamle ordsprog.
"Kast ikke med udhåndterede exceptions når man bor i et objekt." :-)
Avatar billede hacked Nybegynder
29. oktober 2006 - 20:05 #2
Paste din exception ind please :)
Avatar billede bertelsenbo Nybegynder
30. oktober 2006 - 09:01 #3
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at mitGUI$3.valueChanged(mitGUI.java:106)
    at javax.swing.JList.fireSelectionValueChanged(JList.java:1317)
    at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1331)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
    at javax.swing.DefaultListSelectionModel.removeIndexInterval(DefaultListSelectionModel.java:611)
    at javax.swing.plaf.basic.BasicListUI$Handler.intervalRemoved(BasicListUI.java:2204)
    at javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:161)
    at javax.swing.DefaultListModel.clear(DefaultListModel.java:490)
    at mitGUI$1.valueChanged(mitGUI.java:74)
    at javax.swing.JList.fireSelectionValueChanged(JList.java:1317)
    at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1331)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:408)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:417)
    at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:441)
    at javax.swing.JList.setSelectionInterval(JList.java:1604)
    at javax.swing.plaf.basic.BasicListUI$Handler.adjustSelection(BasicListUI.java:2316)
    at javax.swing.plaf.basic.BasicListUI$Handler.adjustFocusAndSelection(BasicListUI.java:2275)
    at javax.swing.plaf.basic.BasicListUI$Handler.mousePressed(BasicListUI.java:2256)
    at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:222)
    at java.awt.Component.processMouseEvent(Component.java:5485)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3889)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Avatar billede bertelsenbo Nybegynder
31. oktober 2006 - 10:40 #4
Virkelig ingen kloge eksperter der kan hjælpe? :-(
Avatar billede bertelsenbo Nybegynder
02. november 2006 - 09:29 #5
Jeg løste det selv
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester