AWT der Rumpf von mouseClick wird oft ausfegührt

ottens

Aktives Mitglied
Hallo an alle,

ich entwickle gerade MVC mit java da gibt es zwei JComboBox und die View als JPanel , mit einem JComboBox kann man ein Jahr wählen dann ändert sich die View bzw(JPanel) entsprechend,wenn ich auf JPanel klicke, wird die Methode mouseClick(MouseEvent e -Controller- ausgeführt aber hier ist ein Problem aufgetaucht und zwar, wenn ich ein jahr wähle und auf JPanel klicke wird der Rumpf von JPanel-Listener (mouseClick(MouseEvent e)) beim ersten mal einmal ausgeführt, beim zweiten mal wähle ein Jahr dann klick auf JPanel wird der Rumpf 3 mal ausgeführt usw (wenn ich oft wiederhole bis 8 mal wird der Rumpf ausgeführt) es sollte mit einem klick auf JPanel ein Fenster geöffnet werden, wo es drauf paar Daten gezeichnet werden sollte, aber wenn der Rumpf 3 oder 8 mal ausgeführt wird, dann erscheinen 3 oder 8 Fenster und nicht nur ein wie es sein soll.

ich sitze mit dem Problem seit paar Tagen, hat jemand eine Lösung bitte

LG

Ottens
 
Fügst du vielleicht immer mehr MouseListener hinzu? Prüf mal die Anzahl der bei der Komponente registrierten Listener.
 
ja das mache ich, also ich füge paar MouseListener aber beim update() der View habe ich 2 panel.removeMouseListener()
und wenn die Daten gültig sind dann panel.addMouseListener()

ich habe dazu noch 2 JButton d.h 2 Controller mit MouseListener , JPanel hat ToolTip MouseListenet und noch ein MouseListener für ein Fenster.
dazu noch 2 JComboBox mit JCBox.addItemListener()
habe versucht mit einem JButton das Fenster zu öffnen aber passiert das selbe also mehrere Fenster gehen auf.

Danke
 
Zuletzt bearbeitet:
was von Design also MVC an sich oder wie man die Ereignisse behandelt ???
der Code ist echt gewaltig also viel und ich ändere ständig daher ist etwas chaos momentan .
 
Eher wie das ganze konkret umgesetzt wurde.
Es scheint ja in Deinem Fall so zu sein, dass Du zur Laufzeit immer wieder Listener an einer Komponente registrierst. Da stellt sich für mich die Frage: Machst Du das bewusst? Ist das zwingend notwendig oder gibt es nicht eine andere Möglichkeit Dein Vorhaben umzusetzen?

Erstellst Du zur Laufzeit neue Komponenten? Entfernst Du Komponenten aus der GUI und fügst Du Komponenten ein?...

Wie gesagt: Ohne den Code zu kennen ist es schwierig dazu was zu sagen.
 
DANKE an allen, die auf meine Frage geantwortet haben also so Forum ist echt SUPER
ich habe das Problem gelöst, ich habe einfach comp.addXYListener(Param.) woanders definiert
und da läuft das Programm wie ein Pferd.

ich bedanke mich echt herzlich bei allen, ihr seid echt SUPER :applaus:

ottens
 

Zurück
Oben