actionPerformed Problem

bafl13

Mitglied
Hallo
Ich bin ein Anfänger mit dem Swing und ich will die Methode "actionPerformed" und ich will mehr als eine "Aktion" definieren aber ich kriege immer einen Fehler
Meine Methode sieht so aus
Java:
	public void actionPerformed(ActionEvent event) {
		JButton s = (JButton) event.getSource();
		if(s==this.konvertrot){
				this.text.setForeground(Color.red);
		}
		else{
			this.text.setForeground(Color.blue);
		}	
		JRadioButton a = (JRadioButton) event.getSource();
			
		if(a==this.roteFarbe){
				this.getContentPane().setForeground(Color.red);
		}
		else{
			this.getContentPane().setForeground(Color.white);
		}
	
	}
ich will es für beide definieren für RadioButton und für das normale Button.
wie könnte ich das machen?
Danke🙂
 
Mit
Code:
instanceof
testen ob es ein Button oder Radiobutton ist. Allerdings brauchst du hier ja gar nicht casten oder? Du kannst ja direkt abfragen ob
Code:
 event.getSource() =this.konvertrot
ist, bzw. eben dein "roteFarbe"- RadioButton 🙂
Ansonstne sind beide auch AbstractButton`s, man könnte also auch darauf casten, kommt eben auch immer darauf an, was man machen will / welche Methoden man aufrufen möchte.
 
Mit
Code:
instanceof
testen ob es ein Button oder Radiobutton ist. Allerdings brauchst du hier ja gar nicht casten oder? Du kannst ja direkt abfragen ob
Code:
 event.getSource() =this.konvertrot
ist, bzw. eben dein "roteFarbe"- RadioButton 🙂
Ansonstne sind beide auch AbstractButton`s, man könnte also auch darauf casten, kommt eben auch immer darauf an, was man machen will / welche Methoden man aufrufen möchte.

Danke habe es jetzt ohne Casting gemacht nur kannst du mir sagen wie könnte ich das doch mit Casting schreiben?ich versuche es mit instanceof und weiß nicht genau,kannst du ein kleines Satz schreiben?
Danke
 
Mit instanceof sähe es so aus:
Java:
	public void actionPerformed(ActionEvent event) {
		if (event.getSource() instanceof JButton) {
		JButton s = (JButton) event.getSource();
		if(s==this.konvertrot){
				this.text.setForeground(Color.red);
		}
		else{
			this.text.setForeground(Color.blue);
		}
		}
		else {
		JRadioButton a = (JRadioButton) event.getSource();
			
		if(a==this.roteFarbe){
				this.getContentPane().setForeground(Color.red);
		}
		else{
			this.getContentPane().setForeground(Color.white);
		}
		}
	
	}
[/QUOTE]
 

Neue Themen


Zurück
Oben