getSource() unklar

tuttle64

Bekanntes Mitglied
Ich habe ein JFrame mit drei Buttons welche alle den gleichen ActionListener benutzern und eine Klasse welche den ActionListener implementiert. Wenn ich im ActionListener die Funktion getSource() aufrufe, erhalte ich sowas

javax.swing.JButton[,225,5,48x26,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@758fc9,usw.]


Kann mir jemand erklären, wie ich aus diesem ellenlangen String die Quelle bzw. den Button ermitteln soll, welche den Event ausgelöst hat? Danke.
 

eRaaaa

Top Contributor
? Du gibst doch da einfach nur die toString() aus...du musst dir da nichts "herausholen" :) e.getSource() liefert ein Objekt zurück, in deinem Fall den JButton
Java:
	public void actionPerformed(ActionEvent e) {
		JButton btn = (JButton) e.getSource();
	}
 

tuttle64

Bekanntes Mitglied
? Du gibst doch da einfach nur die toString() aus...du musst dir da nichts "herausholen" :) e.getSource() liefert ein Objekt zurück, in deinem Fall den JButton
Java:
	public void actionPerformed(ActionEvent e) {
		JButton btn = (JButton) e.getSource();
	}


Tja, und wie stelle ich fest, welcher JButton betätigt worden ist? Ok, habe es verstanden. Ich kann btn == ButtonName vergleichen. Danke.
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Tja, und wie stelle ich fest, welcher JButton betätigt worden ist?

?? Na den liefert dir doch e.getSource() ? Oder meinst du wie du den jetzt von den drei unterscheiden kannst? Dann ist die Antwort: so erstmal gar nicht... der Listener muss natürlich dann schon die Buttons kennen um vergleichen zu können... entweder übergibst du die dem Listener, du stellst in deiner Frame Klasse/Controller-Klasse eine entsprechende Methode bereit oder einfach eine innere Klasse oder
wenn eh jeder Button eine andere Aufgabe hat, wäre es evtl. sogar besser jedem Button seinen eigenen Listener hinzuzufügen..(anonyme innere Klasse bietet sich da dann z.B. an..) ...

/edit: bzw, mit actionCommands ginge es vllt. auch schon direkt so...
 
Zuletzt bearbeitet:

tuttle64

Bekanntes Mitglied
?? Na den liefert dir doch e.getSource() ? Oder meinst du wie du den jetzt von den drei unterscheiden kannst? Dann ist die Antwort: so erstmal gar nicht... der Listener muss natürlich dann schon die Buttons kennen um vergleichen zu können... entweder übergibst du die dem Listener, du stellst in deiner Frame Klasse/Controller-Klasse eine entsprechende Methode bereit oder einfach eine innere Klasse oder
wenn eh jeder Button eine andere Aufgabe hat, wäre es evtl. sogar besser jedem Button seinen eigenen Listener hinzuzufügen..(anonyme innere Klasse bietet sich da dann z.B. an..) ...


Alles klar.
 

Ähnliche Java Themen

Neue Themen


Oben