MouseListener zurückverfolgung auf element.

Status
Nicht offen für weitere Antworten.
S

Stefan Litzel

Gast
Hi Leute,

ich hab ein Array von JButton Objekten gemacht.
Insgesamt beinhaltet das Array 36 JButton Objekte.

Nun reagiert das mouseClicked event wenn einer der JButtons angeklickt wird.

Code:
public void mouseClicked(MouseEvent event) {
//Hier problem

}

Ich möchte aus dieser Methode heraus herausfinden welcher Button des Arrays das Event ausgelöst hat.
Es gibt da ja getSource() aber mit der Methode komm ich nicht wirklich weiter.


Am besten wärs natürlich wenn ich den index des Array elements herausfinden könnte.

Hoffe ihr könnt mir helfen.[/code]
 

Butterfly

Mitglied
Mir ist grade nicht ganz klar, auf welcher Komponente du den MouseListener registrierst, von daher kann es sein, dass dir mein Tipp nichts hilft.
Aber hier mal mein Vorschlag:

Es gibt für JButton die Funktion "getActionCommand()" und "setActionCommand(String command)".
Man benutzt das zwar eher für ActionEvents, aber hier könntest du das auch trickreich anwenden.
Ich denke, du erzeugst die JButtons im Array per Zählschleife.
Füge deiner Schleife einfach mal folgendes hinzu:
Code:
button.setActionCommand(i);
(Wobei button dein temporärer Button für die Erzeugung ist und i der Zählindex der Schleife.)
Somit bekommt jeder Button als ActionCommand seinen Index im Array zugewiesen.

Das kannst du dir jetzt über getSource() & getActionCommand() zunutze machen:
Code:
public void mouseClicked(MouseEvent event) {
       JButton temp = (JButton)event.getSource(); //casten nicht vergessen, sonst bekommst du ein Object, keinen Button
       int index = Integer.parseInt(temp.getActionCommand());
       //Restlicher Code
}
Du holst quasi per getSource() das Objekt, welches das Event ausgelöst hat. Du castet das von Object zu JButton (da ja alle Objekte im Array eh nur JButtons sind, sollte das klar gehen) und kannst dann damit auf die Methoden von JButton zugreifen.
Somit kannst du dir dann per getActionCommand() das ActionCommand holen, indem wir den Index gespeichert haben. Wir parsen den String dann noch zu einem Integer und schon weißt du problemlos, welcher Button das Event ausgelöst hat.

Es ist vielleicht nicht ganz so elegant, da wir uns hier etwas zunutze machen, was eigentlich nicht für diesen Zweck gedacht ist (ActionCommand), aber wenn du diese Funktionen in deinem restlichen Programm nicht weiter brauchst, sehe ich keinen Grund, dass nicht so zu machen. Ansonsten kannst du dir ja auch schnell eine Unterklasse von JButton ableiten und darin dann ein extra Attribut "index" mit get & set-Methoden einfügen. Das könntest du dann genauso verwenden.

(Ich habe das jetzt praktisch nicht probiert, aber von meinen Erfahrungen her, müsste das eigentlich problemlos funktionieren).
 

Sqwan

Mitglied
event.getActionCommand()

gibt bei einem gedrückten button den darin stehenden text in form eines Strings zurück...
Vllt hilft das
 
S

Stefan Litzel

Gast
hmm glau dass hilft mir eher weniger, da sie alle den gleichen inhalt haben
 
S

Stefan Litzel

Gast
Hi ich hab den zweiten Vorschlag von dir umgesetzt und einfach ne neue Klasse von JButton abgeleitet, hat bestens geklappt danke.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
R Punkt von MouseListener hat falsche Koordinate AWT, Swing, JavaFX & SWT 2
J MouseListener wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 4
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
F ListCellRenderer mit JLabel und MouseListener AWT, Swing, JavaFX & SWT 4
D Event Handling MouseListener funktioniert seit Java 8 nicht mehr AWT, Swing, JavaFX & SWT 13
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
D Swing &MouseListener in einem JFrame, sinnig? AWT, Swing, JavaFX & SWT 11
U MouselIstener zu JFrame AWT, Swing, JavaFX & SWT 6
F Swing MouseListener im JPanel AWT, Swing, JavaFX & SWT 3
J Swing Button mit JTable und MouseListener AWT, Swing, JavaFX & SWT 8
F JPanel + MouseListener AWT, Swing, JavaFX & SWT 5
JavaInBrain Swing Rückgabe aus MouseListener-Klasse AWT, Swing, JavaFX & SWT 3
A SWT SWT Scale und MouseListener AWT, Swing, JavaFX & SWT 7
J MouseListener und rechte Maustaste AWT, Swing, JavaFX & SWT 3
R MouseListener auf JPanel AWT, Swing, JavaFX & SWT 3
Q Swing MouseListener auf JTable geht nicht AWT, Swing, JavaFX & SWT 2
J Swing Einbau MouseListener in JPanel AWT, Swing, JavaFX & SWT 3
N Mit MouseListener X-Y Angaben vom Bild erfahren AWT, Swing, JavaFX & SWT 3
T MouseListener an Ecken von Polygonen hinzufügen AWT, Swing, JavaFX & SWT 5
H Swing JPanel in JTable mit MouseListener AWT, Swing, JavaFX & SWT 3
A Individueller MouseListener ? AWT, Swing, JavaFX & SWT 7
B MouseListener im Renderer einer JComboBox AWT, Swing, JavaFX & SWT 3
P AWT MouseListener unklare abhandlung von Events AWT, Swing, JavaFX & SWT 3
M MouseListener/MouseMotionListener AWT, Swing, JavaFX & SWT 2
njans SWT MouseListener exited AWT, Swing, JavaFX & SWT 4
danx066 MouseListener macht was er will AWT, Swing, JavaFX & SWT 14
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
P JLabel Farbe/Bild ändern aus MouseListener heraus AWT, Swing, JavaFX & SWT 3
U Swing Generierung mehrerer Kreise per MouseListener AWT, Swing, JavaFX & SWT 16
Semox Swing JApplet: Problem MouseListener Anmeldung AWT, Swing, JavaFX & SWT 3
C JTappedPane Mouselistener auf Überschrift Registerkarte AWT, Swing, JavaFX & SWT 2
M MouseListener AWT, Swing, JavaFX & SWT 3
K AWT MouseListener linke und rechte Maustaste AWT, Swing, JavaFX & SWT 5
C Swing MouseListener Doppelklick-Geschwindigkeit AWT, Swing, JavaFX & SWT 4
N Swing MouseListener in JTable AWT, Swing, JavaFX & SWT 4
1 Eigene JComponent mit MouseListener versehen AWT, Swing, JavaFX & SWT 10
Developer_X AWT Component added keinen MouseListener AWT, Swing, JavaFX & SWT 7
R MouseListener wird nicht aufgerufen AWT, Swing, JavaFX & SWT 3
P JComboBox und MouseListener AWT, Swing, JavaFX & SWT 2
W MouseListener im editable ComboBox AWT, Swing, JavaFX & SWT 14
raptorrs Swing MouseListener reagiert nicht auf Instanz einer JTable AWT, Swing, JavaFX & SWT 6
multiholle Swing Mouselistener auf Parentpanel immer aktiv AWT, Swing, JavaFX & SWT 7
C MouseListener und ActionListener kombinieren AWT, Swing, JavaFX & SWT 17
M Komponenten einer unbestimmten Anzahl und MouseListener AWT, Swing, JavaFX & SWT 4
A MouseListener funktionert nie AWT, Swing, JavaFX & SWT 12
C Probleme mit Größe und mit MouseListener AWT, Swing, JavaFX & SWT 2
W MouseListener für jede Zelle einer JTable AWT, Swing, JavaFX & SWT 4
E MouseListener Problem AWT, Swing, JavaFX & SWT 4
D jButton mit ImageIcon & MouseListener AWT, Swing, JavaFX & SWT 5
B MouseListener / doppelklick geht net AWT, Swing, JavaFX & SWT 16
M JCheckBox Standard MouseListener entfernen AWT, Swing, JavaFX & SWT 13
hdi Wie mach ich diesen MouseListener AWT, Swing, JavaFX & SWT 4
G MouseListener & KeyListener AWT, Swing, JavaFX & SWT 4
H JComboBox reagiert nicht auf MouseListener AWT, Swing, JavaFX & SWT 5
2 Mouselistener AWT, Swing, JavaFX & SWT 2
W MouseListener, getClickCount und Doppelklick AWT, Swing, JavaFX & SWT 6
S swing komponenten mit mouselistener rotieren AWT, Swing, JavaFX & SWT 15
G JFrame,JLabel,MouseListener AWT, Swing, JavaFX & SWT 6
F Wie MouseListener bei TableModel anmelden? AWT, Swing, JavaFX & SWT 3
V Frage zu MouseListener --> mousePressed() AWT, Swing, JavaFX & SWT 5
C MouseListener für Spalte eines JTables AWT, Swing, JavaFX & SWT 4
K Problem mit 2 MouseListener. AWT, Swing, JavaFX & SWT 3
M MouseMotionListener oder mouseListener AWT, Swing, JavaFX & SWT 6
T JComboBox und MouseListener AWT, Swing, JavaFX & SWT 11
F MouseListener - Unhandled IOException AWT, Swing, JavaFX & SWT 5
padde479 Statusleiste mit MouseListener aktualisieren AWT, Swing, JavaFX & SWT 3
L Problem mit MouseListener, AdjustmentListener AWT, Swing, JavaFX & SWT 6
T MouseListener Problem AWT, Swing, JavaFX & SWT 3
F Mouselistener wird wiederholt aufgerufen AWT, Swing, JavaFX & SWT 3
G Frage zu MouseListener und speichern des Wertes (reflektion? AWT, Swing, JavaFX & SWT 6
B frage zu MouseListener AWT, Swing, JavaFX & SWT 5
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
W JPanel, JLabel und MouseListener -> auf clicks reagieren AWT, Swing, JavaFX & SWT 5
S MouseListener auf einem einzelnen Tab setzen AWT, Swing, JavaFX & SWT 3
B MouseListener & Fenster schliessen AWT, Swing, JavaFX & SWT 3
G MouseListener AWT, Swing, JavaFX & SWT 4
G Tooltip sperrt MouseListener? AWT, Swing, JavaFX & SWT 6
S JComboBox und MouseListener AWT, Swing, JavaFX & SWT 5
D Koordinaten der Bildschirmposition auslesen (MouseListener?) AWT, Swing, JavaFX & SWT 7
A Klassenübergreifend MouseListener verwenden AWT, Swing, JavaFX & SWT 14
N "globaler" MouseListener (+MouseMotionListener) AWT, Swing, JavaFX & SWT 4
M ToolTipText für JTable mit MouseListener ohne anklicken? AWT, Swing, JavaFX & SWT 7
A MouseListener auf Bild legen ? AWT, Swing, JavaFX & SWT 16
S Mouselistener erzeugt kein Event in einem Menuitem AWT, Swing, JavaFX & SWT 2
J MouseListener AWT, Swing, JavaFX & SWT 3
A JPanels in JPanel und MouseListener AWT, Swing, JavaFX & SWT 3
C Mehrere MouseListener? AWT, Swing, JavaFX & SWT 7
U Keylistener und Mouselistener AWT, Swing, JavaFX & SWT 2
L Event-handling, MouseListener AWT, Swing, JavaFX & SWT 5
T Problem mit MouseListener bei JButton AWT, Swing, JavaFX & SWT 5
K mein keyListener scheint Konflict haben mit mouseListener AWT, Swing, JavaFX & SWT 6
G Problem mit MouseListener AWT, Swing, JavaFX & SWT 9
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
W Element aus comboBox mit observableList löschen AWT, Swing, JavaFX & SWT 3
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
G FX warten bis ein anderes GUI Element ausgewählt wurde AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben