actionPerformed und ComboBoxen

Status
Nicht offen für weitere Antworten.
hai,
mein problem ist folgendes. ich habe in einem panel mehrere JCombo Boxen auf denen jeweils bei auswahl eines anderen parameters ein anderes bild angezeigt werden soll. dies wird mit der klasse actionPerformed(ActionEvent e) realisiert. nun habe ich die implementierung für eine box geschafft ... ich habe aber keine ahnugn wie ich es bei zwei oder mehr mache!!!?
Code:
JComboBox hintergrundbox = new JComboBox(background);
hintergrundbox.addActionListener(this);

   public void actionPerformed(ActionEvent e) {
    	
        JComboBox cb = (JComboBox)e.getSource();
        String hintergrund = (String)cb.getSelectedItem();
        if (hintergrund=="Background1") {
			ImageIcon Icon3 = new ImageIcon ("images/hintergrund_blau0.gif");
			labelbackgr.setIcon(Icon3);
			repaint();
        }.......
......if ....
wie definiere ich in actionperformed nun das er ganau auf die box "hintergrundbox" hören soll und außerdem nochmals auf mehrere andere - und bei den anderen boxen auch andere bilder anzeigt für andere ausgewählte parameter.
ich hoffe mir kann jemadn helfen
thx
joecrack
 
S

SlaterB

Gast
a.)
du unterscheidest die Boxen am Event:

if (e.getSource() == hintergrundbox ) {
..
} else {
..
}

b.)
du verwendest einzelne Listener, jede Box hat ihren eigenen,
du musst dann nicht unbedingt lauter neue Klassen definieren,
es gibt auch anonyme ActionListnener:

Code:
hintergrundbox.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {
     ..
   }
});

----------

Vorsicht beim Vergleich von Strings mit ==,
verwende allgemein besser "Background1".equals(hintergrund)
 
hallo und erstaml danke für eure mühen ....
also wie ich das jetzt verstanfen habe müsste das jetzt dann ja so funktionieren richtig?:
Code:
		 JComboBox hintergrundbox = new JComboBox(background);
		 hintergrundbox.addActionListener(this);

		 JComboBox kiesbox = new JComboBox(kiesfarbe);
		 kiesbox.addActionListener(this);

   public void actionPerformed(ActionEvent e) {

    	if (e.getSource() == hintergrundbox ) { 
    		System.out.println("Hintergrundbox movement");
    	}
    	if (e.getSource() == kiesbox ) { 
    		System.out.println("Kiesbox movement");	
    	}
Die prinln`s werden aber nicht ausgeführt! Hab ich deinen Vorschlag falsch verstanden?
 
hmmm also erstens funktioniert es ja auch wunderbar mit einem actionlistener - zumindest bei einer box ... und zweitens ... wird das auf dieser doch - ich würde sagen recht kompetenten seite - anderes gesehn java.sun.com/j2se/1.4.2/docs/api/
Das hilft mir aber jetzt auch nciht bei meinem problem... wie würde ich denn bei einem actionlistener denn jetzt zwischend en boxen unterscheiden .. oder ist das klar das ich einen itemlistener benutzen solte?
 
okey sieht so aus ... habs mit itemlistener versucht und es klappt ... naja nur wie folgt:
Code:
	public void itemStateChanged(ItemEvent ie) {

        JComboBox cb = (JComboBox)ie.getSource();
        String hintergrund = (String)cb.getSelectedItem();

        	if(hintergrund=="Background2") {
     		System.out.println("Hintergrundbox knalleballe");
        	}
	}
Wenn ich anstatt nun veruschen würde wie hier dann würde die println nicht erscheinen - warum???
Code:
	public void itemStateChanged(ItemEvent ie) {
	       if (ie.getSource().equals(hintergrundbox)) {
	    		System.out.println("Hintergrundbox knalleballe");
	        }
	}
 
hai habs jetzt heschafft und zwar so wie von SlaterB vorgeschlagen:
Code:
 hintergrundbox.addItemListener(new ItemListener() {
			 
	          public void itemStateChanged(ItemEvent e) {
	              JComboBox cb = (JComboBox)e.getSource();
	              String hintergrund = (String)cb.getSelectedItem();
	          	
	              if (hintergrund=="Background1") {
	      			ImageIcon Icon3 = new ImageIcon ("images/hintergrund_blau0_vorschau.gif");
	      			labelbackgr.setIcon(Icon3);
	      			repaint();
	              }
	              if .......
...........
und dann würde ich aber noch gerne wissen ob das gleiche auch für sldier gilt ... also da benutzte ich ja einen changelistener ... könnte ich das nach dem gleichen prizip lösen oder lässt sich in diesem fall leichter zwischen den events unterscheiden?
 

The_S

Top Contributor
Es lassen sich IMMER beide Methoden und zwar ohne Probleme anwenden.

Bei der anonymen Klasse musste halt net überprüfen von wo das event gefeuert wurde, wenn du direkt den Listener implementierst, wird eine Überprüfung normal so durchgeführt:

Code:
public void methodeVonListener(IrgendeinEvent evt) {
   if (evt.getSource() == irgendeineComponente) {
      // Event wurde von irgendeinerComponenten gefeuert
   }
   else if (evt.getSource() == andereComponente) {
      // Event wurde von andererComponente gefeuert
   }
}

Desweiteren vergleicht man Strings nicht wie du es machst mit == sondern mit equals. Dazu findest du auch einen Beitrag in den FAQ. Und bevor du über irgendwelche Vorschläge herziehst versuch sie erstmal und les mal dein Grundlagenbuch fertig :roll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R actionPerformed wird nicht ausgeführt Java Basics - Anfänger-Themen 5
F actionPerformed() zur richtigen Zeit Java Basics - Anfänger-Themen 6
D JLabel ändern in actionperformed Java Basics - Anfänger-Themen 2
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
S Wie werte vergleichen, die in actionPerformed-Methode hängen ? Java Basics - Anfänger-Themen 4
M Threads Thread.Sleep Problem im Zusammenhang mit GUI/ActionPerformed-Methode Java Basics - Anfänger-Themen 4
J In actionPerformed Zugriff auf öffentlich Methoden der Klasse Java Basics - Anfänger-Themen 4
Z Kann actionPerformed(ActionEvent) nicht überschreiben Java Basics - Anfänger-Themen 8
J Werte an Methode übergeben und gleichzeitig ActionPerformed einbeziehen. Java Basics - Anfänger-Themen 14
M OOP ActionPerformed Methode aus anderer AP aufrufen? Java Basics - Anfänger-Themen 5
M Variablen via actionPerformed mit Buttons ändern Java Basics - Anfänger-Themen 7
R Wie es anstellen das ActionPerformed einen Wert zurückgibt? Java Basics - Anfänger-Themen 8
S Objekt an actionPerformed Methode übergeben Java Basics - Anfänger-Themen 7
A lokale Variable innerhalb "actionPerformed()" Java Basics - Anfänger-Themen 10
S actionPerformed(ActionEvent ev) Java Basics - Anfänger-Themen 4
Houly while Schleife im ActionPerformed Event Java Basics - Anfänger-Themen 8
R ActionPerformed: Methode ausführen Java Basics - Anfänger-Themen 3
0 Fehlermeldung: SteuerungsPanel$ButtonHandler.actionPerformed(Steu erungsPanel.java: Java Basics - Anfänger-Themen 2
R Thread in ActionPerformed-Methode unbekannt? Java Basics - Anfänger-Themen 4
R Wie getText mit actionPerformed verwenden? Java Basics - Anfänger-Themen 3
C actionPerformed(null) Java Basics - Anfänger-Themen 6
D Auf Buttondruck (actionperformed) painten Java Basics - Anfänger-Themen 5
H Frage zur Methode: actionPerformed Java Basics - Anfänger-Themen 2
A ActionPerformed Methode ohne Rückgabewert Java Basics - Anfänger-Themen 12
I actionPerformed funktioniert nicht Java Basics - Anfänger-Themen 13
DeeDee0815 JRadioButton, actionPerformed und Textfelder Java Basics - Anfänger-Themen 2
B Exception Handling in der ActionPerformed-Methode Java Basics - Anfänger-Themen 7
S Java GUI: Probleme mit EventListener und actionPerformed Java Basics - Anfänger-Themen 3
J JMenu + ActionPerformed + ConntentPane Java Basics - Anfänger-Themen 4
D Fehlersuche actionPerformed Java Basics - Anfänger-Themen 6
S actionPerformed und JCheckBox Java Basics - Anfänger-Themen 4
N ActionListener - ActionPerformed - if soure= .... Java Basics - Anfänger-Themen 6
M Übergeben einer Variable an actionPerformed(ActionEvent e)? Java Basics - Anfänger-Themen 5
U actionPerformed - Source verständlich Java Basics - Anfänger-Themen 8
C Problem mit actionPerformed Java Basics - Anfänger-Themen 4
D Laden und leeren von Comboboxen Java Basics - Anfänger-Themen 8
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
T Textfelder und ComboBoxen anderst anordnen? Java Basics - Anfänger-Themen 4
A ComboBoxen Java Basics - Anfänger-Themen 15
S Zusammenhängende Comboboxen? Java Basics - Anfänger-Themen 2
G Problem mit 2 ComboBoxen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben