Urheber von Events ermitteln

Status
Nicht offen für weitere Antworten.

marasek

Aktives Mitglied
Wenn ich z. B. einen MouseListener an einen JButton hänge, dann bekommt die Listener-Methode ein Objekt MouseEvent. Der MouseEvent liefert das verursachende bzw. registrierende Objekt mit und ich kann es mir dort wieder holen. Wenn ich es dann mit einer anderen Instanz des Objekts vergleiche, kann ich entscheiden, ob z. B. von zwei Buttons Button 1 oder 2 angeklickt worden ist. Soweit so gut.

Nehmen wir nun mal an, ich habe eine Ausgabe von Inhalt in einer Datenbank und erzeuge für jede Zeile einen Button "Delete". Mit Klick darauf soll die betreffende Zeile aus der Datenbank gekillt werden. Nur wie ermittle ich jetzt in der mouseClicked-Methode, welcher Button geklickt worden ist? Ich kann dort ja nur mit einem Objekt vergleichen oder mir den Text des Buttons geben lassen, der aber immer "Delete" und mithin nicht aussagekräftig ist. Mein Ansatz wäre nun, die Button-Objekte in einer HashMap bestehend aus Primärschlüssel des Eintrags => JButton zu speichern, den zu durchlaufen, auf das Objekt zu vergleichen und dann den Key bei einem Treffer als Löschkriterium zu verwenden - irgendwie brutal (ok, es wird eine Methode geben, Java das entsprechende Objekt suchen zu lassen)

Von wxWidgets mit Python meine ich mich zu erinnern, dass man dort einem Button u. ä. noch eine Id mitgeben konnte, die man dementsprechend später abrufen konnte, also new JButton(3, "Delete") und dann evt.getId(). Bevor ich hier existierendes Zeugs nachprogrammiere - gibt es das auch bei Java/Swing und ich habe es nur übersehen? Oder kann mein Ansatz verbessert werden?
 
S

SlaterB

Gast
einem Standard-Button kannst du einen Namen, einen Text und ein ActionCommand geben,
sind aber alles Strings,

wenn du eine eigene SubKlasse schreibst, dann gingen auch die schönsten Id-Vorstellungen
 

anp

Mitglied
Falls dir eine vorgegebene Klasse wie z.B. der JButton nicht ausreicht, erstellst du dir einfach eine neue und erbst davon, also sowas wie

public class MyButton extends JButton {
...
}

dort kannst du dir dann deine IDs als Variablen definieren :)

VG
 

Zed

Bekanntes Mitglied
Du könntest den ActionCommand mit der Id des zu löschenden Datensatzes versehen. Du bindest alle Butons an den selben Actionlistener. Dort liest du den ActionCommand aus und löscht den Datensatz.
 

marasek

Aktives Mitglied
Du könntest den ActionCommand mit der Id des zu löschenden Datensatzes versehen. Du bindest alle Butons an den selben Actionlistener. Dort liest du den ActionCommand aus und löscht den Datensatz.

Jo, danke, das war genau das, was ich gesucht habe.

Unterklasse werde ich wohl an anderer Stelle verwenden müssen (will ein JLabel als Button missbrauchen).
 

Ebenius

Top Contributor
Unterklasse werde ich wohl an anderer Stelle verwenden müssen (will ein JLabel als Button missbrauchen).
Das ist in aller Regel ein Fehler. Ein JButton kann eigentlich alles was ein JLabel auch kann. Man benutzt normaler Weise einfach einen JButton, schlatet den Rahmen weg, setzt die Margins um und machst ihn durchsichtig. Bestimmt hab ich noch eine Kleinigkeit vergessen. :)

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Ical4j - Lazy Loading von Events? Java Basics - Anfänger-Themen 2
D Events verarbeiten Java Basics - Anfänger-Themen 1
nonickatall Erste Schritte Events Dokumentation/Tutorial Java Basics - Anfänger-Themen 1
K die Source eines Events bei verschiedenen Quellen herausfinden Java Basics - Anfänger-Themen 1
M Best Practice Events für jeden, oder für die Allgemeinheit "registrieren"? Java Basics - Anfänger-Themen 5
O Wie Log4J - Ausgaben/Events auffangen?! Java Basics - Anfänger-Themen 3
Thallius Best Practice Events zwischen eigenen Klassen Java Basics - Anfänger-Themen 2
G Events schreiben, solange Programm läuft Java Basics - Anfänger-Themen 6
H [JAVA] NetBeans GUI Builder - Events Java Basics - Anfänger-Themen 10
G Erste Schritte Window Events in Java Java Basics - Anfänger-Themen 6
Y Events auslösen Java Basics - Anfänger-Themen 11
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
S Dauer eines Events anhandUnterschied berechnen? Java Basics - Anfänger-Themen 3
Nicer Maus Events Java Basics - Anfänger-Themen 2
H Listener und Events entfernen Java Basics - Anfänger-Themen 2
R wieso Nullpoint und was mit Events ? Java Basics - Anfänger-Themen 14
F Reihenfolge in der Events abgearbeitet werden Java Basics - Anfänger-Themen 2
Luk10 Problem mit vielen Timer(-Events) Java Basics - Anfänger-Themen 17
B Events behandeln Java Basics - Anfänger-Themen 4
A Events werfen/feuern wenn bestimtm methode ausgeführt wird Java Basics - Anfänger-Themen 3
E import org.eclipse.swt.Events.PaintListener; Java Basics - Anfänger-Themen 1
S Eigene Events werfen? Java Basics - Anfänger-Themen 6
G Events manuell aulösen Java Basics - Anfänger-Themen 3
C Listener und Events Java Basics - Anfänger-Themen 10
D Events nicht bei den jeweiligen Objekten? Java Basics - Anfänger-Themen 3
G PropertyChangeListener empfängt Events doppelt Java Basics - Anfänger-Themen 5
F Eigene Klasse für Events Java Basics - Anfänger-Themen 10
G Events Java Basics - Anfänger-Themen 8
S Keylistener-Events hochreichen Java Basics - Anfänger-Themen 4
H Problem mit Events bzw. Referenzen Java Basics - Anfänger-Themen 4
H Events Java Basics - Anfänger-Themen 5
G Loop blockt alle Events Java Basics - Anfänger-Themen 7
D Probleme mit key events Java Basics - Anfänger-Themen 6
S Events Java Basics - Anfänger-Themen 11
S MouseListener - Events auf Mouseklick Java Basics - Anfänger-Themen 14
D Events Java Basics - Anfänger-Themen 4
G Events Java Basics - Anfänger-Themen 2
E Events nicht an aufrufendes Objekt schicken Java Basics - Anfänger-Themen 23
R events . usw Java Basics - Anfänger-Themen 6
S winXP -> window-events Java Basics - Anfänger-Themen 2
D [Problem] Events Java Basics - Anfänger-Themen 3
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
S Bildgröße ermitteln & setSize() übergeben Java Basics - Anfänger-Themen 6
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
R Hangman-Spiel-zufälliges Wort ermitteln Java Basics - Anfänger-Themen 4
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
H Palindrom ermitteln Java Basics - Anfänger-Themen 21
J Datum ermitteln ? Java Basics - Anfänger-Themen 14
M Beliebtesten Film ermitteln Java Basics - Anfänger-Themen 6
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
H Bei forEach Index des Elements ermitteln Java Basics - Anfänger-Themen 17
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
V Erste Schritte Potenzen b^n mittels Schleife ermitteln Java Basics - Anfänger-Themen 7
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
C Laufzeit eines Sortier-Algorithmus ermitteln Java Basics - Anfänger-Themen 4
O 2 Maximalwerte und Minimalwerte aus Array ermitteln Java Basics - Anfänger-Themen 9
L Fortschritt ermitteln Java Basics - Anfänger-Themen 18
N Erste Schritte HSV color space - schwarz und weiß nur anhand von Saturation oder Multiplikator ermitteln Java Basics - Anfänger-Themen 14
N Wahrscheinlichkeiten ermitteln Java Basics - Anfänger-Themen 2
L Objekt Typ zur Laufzeit ermitteln Java Basics - Anfänger-Themen 1
J Schwierigkeitsgrad eines Wortes mit Morsecode ermitteln Java Basics - Anfänger-Themen 18
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
G Größten und kleinsten Wert im Array ermitteln? Java Basics - Anfänger-Themen 7
G Wie kann ich diesen Wert ermitteln? Java Basics - Anfänger-Themen 4
T Rekursiv Tiefe eines binären Suchbaums ermitteln Java Basics - Anfänger-Themen 22
D Maximale Teilsumme ermitteln Java Basics - Anfänger-Themen 6
MiMa Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
S Compiler-Fehler im array Maximum ermitteln Java Basics - Anfänger-Themen 6
V Querprodukt ermitteln Java Basics - Anfänger-Themen 6
L Array: Summe aller geraden und ungeraden Zahlen ermitteln Java Basics - Anfänger-Themen 9
Joew0815 Int to string und primzahle ermitteln Java Basics - Anfänger-Themen 2
F Jalousie Positionen ermitteln Java Basics - Anfänger-Themen 4
C Klassen aus einem Package ermitteln und per Laufzeit laden Java Basics - Anfänger-Themen 17
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
C OOP Schwerpunkt eines Dreiecks ermitteln Java Basics - Anfänger-Themen 4
I Zeitraum eines Monats ermitteln und in String ausgeben Java Basics - Anfänger-Themen 1
S Datentypen Dimensionalität eines Arrays ermitteln Java Basics - Anfänger-Themen 2
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
D TreeMap: Höheren Key ermitteln und den Value liefern Java Basics - Anfänger-Themen 3
J In einem Array die größte Zahl ermitteln und Faktorisieren. Java Basics - Anfänger-Themen 5
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
H JEditorPane: ermitteln, ob Zeichen unterstrichen Java Basics - Anfänger-Themen 4
M Monat der letzen 12 Monate ermitteln Java Basics - Anfänger-Themen 8
MiMa String Datum ermitteln Java Basics - Anfänger-Themen 9
H Veränderung eines Objekts ermitteln Java Basics - Anfänger-Themen 6
S Wochentage ermitteln Java Basics - Anfänger-Themen 5
S Ermitteln und Setzen der Attribute eines Objektes Java Basics - Anfänger-Themen 6
F Den Gewinner der Tordifferenz ermitteln Java Basics - Anfänger-Themen 5
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
S MP3 Spielzeit mit jid3lib ermitteln? Java Basics - Anfänger-Themen 3
M Größer der eigenen .jar ermitteln Java Basics - Anfänger-Themen 4
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
C Nächsten Montag ermitteln Java Basics - Anfänger-Themen 19
W Position in ArrayList ermitteln Java Basics - Anfänger-Themen 4
B Font Namen ermitteln Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben