StackOverflow Problem

motoric18

Bekanntes Mitglied
Hallo zusammen, ich habe ein folgendes Problem. Es wird mir eine StackOverflow Exception geworfen ohne zu wissen wie dies überhaupt funktioniert (unlogisch für mich).

Also ich Habe eine ComboBox, 2 Checkboxen und eine JList mit DefaultListmodel.

Nun wähle ich ein Element aus Combo, makiere Checkbox und makiere Element aus JList.
Nun entferne ich die makierung aus JList und enfferne makierung checkbox und makiere danach
andere checkbox alles Prima.

Was unlogisch ist.

Nun wähle ich ein Element aus Combo, makiere Checkbox und makiere Element aus JList.
Nun enfterne ich die makierung aus der Checkbox (ohne aus der List zu enfernen) und
wähle andere Checkbox. EXception StackOverflow.

Was ich nicht verstehe, obwohl ich meine Checkbox wähle, wird der ActionListener der JList
aufgerufen. WIESO das ???
 
KSKB erstellen.

Zumindest würde ich den Stacktrace posten.
Da sieht man ja, wo die Endlosschleife passiert.
 
Hallo ja die Liste wird dynamisch gefüllt, und beim
direkten entfernen der Checkboxmakierung und beim erneuten makieren der Checkbox,
wird der JList Listener ausgeführt. Obwohl dieser nichts mit zu tun hat.
Und dort findet sowass wie eine endlosschleife statt bis StackOverflow.


ABer wird die Makierung "vorher" aus der JList entfernt funktioniert alles Prima.

Java:
list = new JList(model);
		list.addListSelectionListener(new ListSelectionListener() {
			public void valueChanged(ListSelectionEvent arg0) 
			{
				// Ermittle gewählten Index der Liste 
				indexlist = list.getSelectedIndex();
				int anzListIndex = 0;
				// Ermittle GesamtIndex der Liste 
				anzListIndex = model.getSize()-2;
				
				
				// Wenn kein Index gewählt worden ist			
				if(indexlist < 0 || indexlist > anzListIndex)
				{
					System.out.println(":):):):):):):):);:):):):):):):):):):):)Es wurde kein Listelem ausgewählt::(:");
....

dieser Blog wird dann endlosmal aufgerufen bis StackOverflowWxc obwohl wie gesagt
eigentlich der CheckboxListener ausgeführt werden sollte.
 
Ohne zu Wissen, wie das eingebettet ist, kann man hier wohl kaum eine qualifizierte Antwort geben.
 

Zurück
Oben