Arbeiten mit actionPerformed(ActionEvent) oder Alternative

maximilian1

Mitglied
Hallo,
ich schreibe gerade an einem Programm, welche viele Elemente in einer ArrayList liegen hat. in diesen Elemente sind verschiedene Strings, ints, usw. abgelegt. All diese Elemente werden übersichtlich in einem Kalender (Monatsansicht) dargestellt, zäsätlich bekommt jedes Element in der Monatsansicht einen JButton um es zu "öffen". Beim Öffenen sollen die einzelnen Strings, ints, usw. in über JLabels ausgegeben werden. Das ist auch soweit schon alles fertig, bis auf die Funktion des Buttons. Ich hatte zunächst immer mit .setActionCommand("blabla") gearbeitet, doch dies ist bei der Großen Menge an Daten sehr unpraktisch.

Kurz zusammengefasst, Elemente aus einer ArrayList sollen mit einem JButton verknüpft werden. Wird dieser Button gedrückt soll das Element, das diesem Button zugeordnet wurde angezeigt/geöffnet werden.

wie mache ich das am geschicktesten?
 

ChrisKu

Bekanntes Mitglied
doch dies ist bei der Großen Menge an Daten sehr unpraktisch.

Was meinst Du mit "unpraktisch"? Der erste Ansatz wäre doch folgender:

1. ActionListener erstellen
2. Jedem Button diesen ActionListener hinzufügen
3. In der actionPerformed() Methode des ActionListeners prüfen, welcher Button ausgelöst hat und dann die entsprechende Methode zur anzeige aufrufen.

Das erfordert ebi vielen Buttons natürlich eine Abfrage jedes Buttons.

Du könntest natürlich auf den JButton überschreiben und eine Referenz auf das anzuzeigende Element in Deinem jeweiligen Objekt deiner CustomButton Klasse speichern. Die actionPerformed Methode bräuchte dann keine Unterscheidung, da immer auf die jeweils gespeicherte Referenz zugegriffen wird.
 

aurikeL_Max

Mitglied
3. In der actionPerformed() Methode des ActionListeners prüfen, welcher Button ausgelöst hat und dann die entsprechende Methode zur anzeige aufrufen.

Überprüfe ich bei diesem Weg die Caption (Beschriftung) des Buttons oder gibt es hier auch eine andere Möglichkeit?

Java:
	public void actionPerformed(ActionEvent e) {
				System.out.print(((JButton)e.getSource()).getText());
	}
 

HoaX

Top Contributor
Du könntest natürlich auf den JButton überschreiben und eine Referenz auf das anzuzeigende Element in Deinem jeweiligen Objekt deiner CustomButton Klasse speichern. Die actionPerformed Methode bräuchte dann keine Unterscheidung, da immer auf die jeweils gespeicherte Referenz zugegriffen wird.

Dazu muss man nichts überschreiben. Für solche Dinge kann man JComponent#getClientProperty/putClientProperty nutzen.
 

HoaX

Top Contributor
Überprüfe ich bei diesem Weg die Caption (Beschriftung) des Buttons oder gibt es hier auch eine andere Möglichkeit?

Java:
	public void actionPerformed(ActionEvent e) {
				System.out.print(((JButton)e.getSource()).getText());
	}

Nein, den der Text kann sich ja bei mehrsprachigen Anwendungen ändern. Für diesen Zweck gibt es setActionCommand/getActionCommand
 

maximilian1

Mitglied
erstmal danke für die vielen Antworten :).
Also ich kenne nur die Lösung mit dem ActionCommand. Da sich die Elemente aber im Wesentlichen durch das Datum unterscheiden (Datum währe dann das ActionCommand) müsste ich in der ActionPerformed Methode ja alle Daten abfragen, da aber regelmäßig neue dazu kommen müsste ich das dann ja immer aktualisieren. Es währe toll wenn ich irgentwie mit dem Buttondrücken gleich ne Referenz auf das Element mitliefern könnte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Event Handling Mit ActionPerformed und java.io arbeiten AWT, Swing, JavaFX & SWT 3
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
M Koordinatensystem für Projektorientiertes Arbeiten AWT, Swing, JavaFX & SWT 2
Y Arbeiten mit JTable AWT, Swing, JavaFX & SWT 3
B Arbeiten mit Prozessbar und alles drum herum AWT, Swing, JavaFX & SWT 3
T Keylistener hört auf zu arbeiten AWT, Swing, JavaFX & SWT 9
I Arbeiten mit mehreren Fenstern AWT, Swing, JavaFX & SWT 4
G Erstes arbeiten mit GUI AWT, Swing, JavaFX & SWT 16
D Arbeiten mit 2 TextFeldern gleichzeitig AWT, Swing, JavaFX & SWT 6
T Arbeiten mit Swing AWT, Swing, JavaFX & SWT 6
M Mit mehreren Panels arbeiten AWT, Swing, JavaFX & SWT 2
O mit komponenten arbeiten AWT, Swing, JavaFX & SWT 2
M 2 gleichberechtigte Fenster sollen miteinander arbeiten AWT, Swing, JavaFX & SWT 7
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
G lastFocusedComponent in ActionPerformed AWT, Swing, JavaFX & SWT 4
B AWT actionPerformed Method funktioniert nicht AWT, Swing, JavaFX & SWT 12
Q AWT Methodenaufruf aus actionPerformed-Methode AWT, Swing, JavaFX & SWT 4
L ActionPerformed Variable übergeben AWT, Swing, JavaFX & SWT 3
J in actionPerformed() Koordinaten ändern AWT, Swing, JavaFX & SWT 9
C actionPerformed mit mehren Aktionen AWT, Swing, JavaFX & SWT 3
C Actionperformed funktioniert nicht AWT, Swing, JavaFX & SWT 13
H actionPerformed aufteilen AWT, Swing, JavaFX & SWT 12
G if-bedinung in actionperformed AWT, Swing, JavaFX & SWT 4
P Swing actionPerformed()-Methode funktioniert nicht AWT, Swing, JavaFX & SWT 3
S AWT Java actionPerformed "Ok" Button AWT, Swing, JavaFX & SWT 4
V Labeltext ändert sich nicht in actionPerformed AWT, Swing, JavaFX & SWT 5
M actionPerformed() wird zu oft aufgerufen AWT, Swing, JavaFX & SWT 10
M Swing Anfängerfrage: ActionPerformed AWT, Swing, JavaFX & SWT 3
B Swing NullPointerException bei actionPerformed() AWT, Swing, JavaFX & SWT 2
B actionPerformed Problem AWT, Swing, JavaFX & SWT 3
D JTree DefaultMutableTreeNode ActionPerformed AWT, Swing, JavaFX & SWT 3
J Aus ActionPerformed ein Plugin starten AWT, Swing, JavaFX & SWT 4
R paintComponent direkt bei actionPerformed aufrufen AWT, Swing, JavaFX & SWT 2
S ActionPerformed Fehler... AWT, Swing, JavaFX & SWT 9
O Button (ActionPerformed) soll neues JFrame erzeugen AWT, Swing, JavaFX & SWT 8
J Action before actionPerformed! AWT, Swing, JavaFX & SWT 4
E ActionListener/actionPerformed() feuert nicht AWT, Swing, JavaFX & SWT 2
E AWT Implementierung einer Anweisung in Methode ActionPerformed AWT, Swing, JavaFX & SWT 2
B Komisches Problem mit actionPerformed() AWT, Swing, JavaFX & SWT 2
K Swing: 2 Buttons und actionPerformed AWT, Swing, JavaFX & SWT 4
B actionPerformed reagiert nicht auf das Canvas-objekt AWT, Swing, JavaFX & SWT 11
B Objekt in "actionPerformed" erzeugen und nutzen AWT, Swing, JavaFX & SWT 3
F actionPerformed und static? AWT, Swing, JavaFX & SWT 20
B Exceptions in actionPerformed() weiterleiten AWT, Swing, JavaFX & SWT 9
S Variablenübergabe bei actionPerformed funktioniet nicht? AWT, Swing, JavaFX & SWT 12
X actionPerformed in einer Klasse Buttons AWT, Swing, JavaFX & SWT 2
T public void actionPerformed(...) ist statisch?? AWT, Swing, JavaFX & SWT 6
S ActionEvent Press Enter per Code auslösen AWT, Swing, JavaFX & SWT 22
B JavaFX Verständnisfrage EventHandler<ActionEvent> Implementierung in meiner Klasse AWT, Swing, JavaFX & SWT 2
M JavaFX ActionEvent Button AWT, Swing, JavaFX & SWT 6
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
S JavaFX Unterschied MouseEvent und ActionEvent AWT, Swing, JavaFX & SWT 3
KilledByCheese Event Handling Vom ActionEvent auf String zugreifen - genaueres in der Beschreibung AWT, Swing, JavaFX & SWT 3
G Swing Durch GlassPane auf Button klicken und ActionEvent auslösen AWT, Swing, JavaFX & SWT 0
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
T Fehler bei ActionEvent? AWT, Swing, JavaFX & SWT 3
P ActionEvent wird nicht verarbeitet AWT, Swing, JavaFX & SWT 4
X AWT ActionEvent wirft NullPointerExpection Warum? AWT, Swing, JavaFX & SWT 42
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
J JavaFX ActionEvent AWT, Swing, JavaFX & SWT 8
U Event Handling JButton Actionevent: starte Spiel AWT, Swing, JavaFX & SWT 4
M Swing ActionEvent soll von Anderem ActionEvent abhängen AWT, Swing, JavaFX & SWT 3
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
L JFrame größe in einem ActionEvent ändern AWT, Swing, JavaFX & SWT 4
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
N Aufgabe: ActionEvent - Abfrage AWT, Swing, JavaFX & SWT 7
N Problem mit ActionEvent - Abfrage AWT, Swing, JavaFX & SWT 10
Dit_ Objekt mit ActionEvent übergeben AWT, Swing, JavaFX & SWT 2
B JFreeChart Balkendiagramm ActionEvent AWT, Swing, JavaFX & SWT 2
kirchrath Swing Aus ActionEvent Objekt herausfinden auf dem er ausgeführt wurde AWT, Swing, JavaFX & SWT 4
T JTable durch ActionEvent befüllen AWT, Swing, JavaFX & SWT 3
B ActionEvent Dateipfad als String übergeben AWT, Swing, JavaFX & SWT 11
M Frage zu ActionEvent? AWT, Swing, JavaFX & SWT 4
P KeyEvent methode an actionEvent methode weiterleiten AWT, Swing, JavaFX & SWT 5
M Eigenes ActionEvent / Eigener Listener AWT, Swing, JavaFX & SWT 2
G ActionEvent richtig anbringen AWT, Swing, JavaFX & SWT 7
C JButton-Name per ActionEvent rausfinden AWT, Swing, JavaFX & SWT 2
P actionlistener und actionevent AWT, Swing, JavaFX & SWT 2
M ActionEvent löst nicht aus AWT, Swing, JavaFX & SWT 4
T actionevent an modalen dialog AWT, Swing, JavaFX & SWT 5
L eigene Komponente, ActionEvent senden? AWT, Swing, JavaFX & SWT 3
M ActionEvent manuell senden AWT, Swing, JavaFX & SWT 7
S Neubaufbau eines Tabelleninhalts bei actionEvent AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben