ArrayIndexOutOfBoundsException

Status
Nicht offen für weitere Antworten.

caty

Mitglied
Hallo Leute!

Ich bekomme ständig folgende Fehlermeldung:

Code:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: No such child: 0
	at java.awt.Container.getComponent(Container.java:280)
	at javax.swing.JComponent.rectangleIsObscured(JComponent.java:4132)
	at javax.swing.JComponent.paint(JComponent.java:1004)
	at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4972)
	at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4925)
	at javax.swing.JComponent._paintImmediately(JComponent.java:4868)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4675)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	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)

Und weiß nicht wirklich wo ich die zuordnen soll. Bei mir hat es etwas mit Verschicken und Empfangen von Nachrichten über JMS zu tun. Ich habe Folgendes gemacht: ich habe mehrere Subscriber (Empfänger) erzeugt und ihnen jeweils einen Listener zugeordnet, der auf die Nachrichten warten soll. So, wenn eine Nachricht ankommt, soll diese in einer GUI dargestellt werden, man kann sich das wir ein Mail-Programm vorstellen.

Die Fehlermeldung hat wahrscheinlich etwas mit Threads zu tun. Liegt es vielleicht daran, dass ich mit diesen Listener viele Threads erzeuge, die auf dieselbe Methode zugreifen. Also meine Listener-Klasse hat eine Methode "onMessage", die aufgerufen wird, wenn eine Nachricht ankommt. In der Methode werden diese Nachrichten auf ein Panel gepackt.

Ich sehe nicht wirklich das Problem...
Kann mir vielleicht jemand helfen?
 

cntlzw

Mitglied
Das hat mit JMS nix zu tun. Du hast irgendwo einen Thread laufen der mit dem Event-Dispatching-Thread rumspielt. Oder anders gesagt Du veränderst in einem Thread eine JComponent, der Thread ist aber nicht der EDT.
 
G

Guest

Gast
caty hat gesagt.:
In der Methode werden diese Nachrichten auf ein Panel gepackt.
Auszug aus Threads and Swing:

Once a Swing component has been realized, all code that might affect or depend on the state of that component should be executed in the event-dispatching thread.

Fred
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben