Wo MouseListener Positionieren

Status
Nicht offen für weitere Antworten.

FoundYa

Neues Mitglied
Hallo @all,

habe mal eine Grundlegene Frage:
Ich habe eine Java Applikation mit folgenden Aufbau (Ausschnitt! das ganze ist noch viel größer.. :) )

Frame
-ContentPane
-- AbgeleitetesInternFrame
---AbgeleitetesJPanel

Momentan adde ich zum ContentPane, in der Frame-Klasse, eine Instanz vom "AbgeleitetesInternFrame",
und habe hier auch z.B. per:
--- AbgeleitetesInternFrame.addMouseListener(new java.awt.event.MouseAdapter() { ...
meinen Mouse Listener hinzugefügt.

Das habe ich deshalb so gemacht, weil Aktionen von der Maus zwar erstmal im
"AbgeleitetesInternFrame" passieren (z.B. Linie zeichnen) aber dann doch in
Objekten des Frames gespeichert/zugewiesen werden.

Nun gefällt mir der Aufbau aber irgendwie überhaupt nicht, da für mich eigentlich die Listener
in dem Objekt instanziert werden sollten, zu dem diese auch gehören, bzw. eine MouseListener
Klasse einbinden...

Was meint Ihr? Gibt es eine bessere Vorgehensweise?

thx
 

Marco13

Top Contributor
Och ... besser, schlechter... die Alternative wäre, den MouseListener woanders zu instanziieren und mit set/add-Methoden oder im Konstruktor dahin weiterzureichen, wo er angehängt werden muss....
 

mad-boy

Mitglied
Ich packe meine MouseListener immer in das Objekt, was sie auch überwachen sollen. Wenn dein gesamtes ContentPane überwacht werden soll, dann packe es da rein, wenn dein JPanel überwacht werden soll dann da...? Klar, man könnte das alles zentral verwalten, aber auf diese weise kannst du sehr schön einzelne Komponenten austauschen. Wenn du plötzlich ein Panel einbaust was die gleichen Funktionen über Tastenkürzel statt über die Maus anbindet, brauchst du so nur das entsprechende Panel austauschen.
 

FoundYa

Neues Mitglied
Hallo nochmal,

und vielen Dank für die Beiträge. Ich habe mir alle drei Antworten angeschaut,
und hab auch alle Versionen implementiert, um zu testen was am einfachsten
und saubersten für mich ist.

Es ist von Antwort zu Antwort besser geworden, meiner Meinung nach :)

Für mich ist ebenfalls die klare Trennung nach MVC am saubersten:

Methode 1: Listener im übergeordneten Container adden
- Wird bei vielen "Untercontainer"/Objekten sehr schnell sehr unübersichtlich
Methode 2: Listener Interface implementieren
- Es müssen jedesmal alle Methoden des Interface überschrieben werden
Methode 3: Listener Klassen für jedes Objekt
- passt ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I AWT MouseListener Extra Knopf auf der Maus Allgemeine Java-Themen 9
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
L Koordinaten des Mouselistener nicht überall gleich Allgemeine Java-Themen 13
B LEERE JTable MouseListener + popupmenu Allgemeine Java-Themen 2
C MouseListener und Repaint() Allgemeine Java-Themen 6
P MouseListener reagiert 2 Mal Allgemeine Java-Themen 11
T Edit: JLabel+MouseListener oeffnet mehrere Instanzen Allgemeine Java-Themen 5
B MouseListener und KeyListener Allgemeine Java-Themen 15
T MouseListener und MouseMotionListener Allgemeine Java-Themen 3
V MouseListener Allgemeine Java-Themen 2
E MouseListener Priorität Allgemeine Java-Themen 4
ElViZ MouseListener auf Linie die per drawLine() gezeichnet wurde? Allgemeine Java-Themen 2
S Anonymen MouseListener entfernen? Allgemeine Java-Themen 2
P Bug mouseListener Allgemeine Java-Themen 2
B Programm soll auf die Eingabe vom Mouselistener warten. Allgemeine Java-Themen 19
M 1. Probleme mit MouseListener, 2. Anwendung in Infobar Allgemeine Java-Themen 8
V MouseListener Allgemeine Java-Themen 9
S MouseListener Allgemeine Java-Themen 18
S Problem Mouselistener Allgemeine Java-Themen 6
G Mouselistener geht aber danach Fehler bei JOptionPane Allgemeine Java-Themen 4
R Global KeyListener/MouseListener Allgemeine Java-Themen 4
J POI Chart positionieren Allgemeine Java-Themen 3
K Transparente Bilder in Bild positionieren und speichern. Allgemeine Java-Themen 5
G Text und Bild/Icon im Label/Button positionieren/ausrichten Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben