Objekt an actionPerformed Methode übergeben

Steppi83

Mitglied
Hallo zusammen

ich hab ein Objekt obj das in einer anderen Klasse erstellt wurde. Das Objekt wurde dann an eine andere Klasse übergeben, in der ich auf einen JButton reagieren möchte. Wie kann ich das Objekt in die actionPerformed Methode übergeben?? Hab schon fast alles probiert...

...
JButton knopf = new JButton;

knopf.addActionListener(new ActionListener(){
public void actionPerformed ActionEvent e){
obj.irgendeineMethode();
}
});

Vielen Dank im Voraus!!
 
Naja obj muss eben dort sichtbar sein. Hast du in der Klasse eine Instanzvariable angelegt? Oder ist diese innere anonyme Klasse die du hier zeigst in der gleichen Methoden/Konstruktor wie wo die das Objekt übergibst? Dann könnte
Code:
final
das sein wonach du suchst!

Code:
public Foo(final Object obj)

/edit: deinen anderen doppelten/unvollständigen Thread habe ich mal gelöscht!
 
Danke fuer die schnelle Antwort!

Also das Objekt wird an den Konstruktor (von einer anderen Klasse) uebergeben. Instanzvariable hab ich angelegt.Der Code, den ich geschrieben hab, befindet sich im Konstruktor. Trotzdem hat die actionPerformed Methode dann keine Referenz mehr auf das Objekt???
 
Und du hast der Instanzvariablen auch das Objekt zugewiesen? Eieiei....mit mehr Code(und wenn es nur ein Beispiel ist) hätten wir die Sache mit einem Post beenden können, so wird es nur schwerer zu erklären:

- Heißt die Instanzvariable gleich wie der Parameter des Konstruktors? Dann könntest du auch Klassename.this.obj schreiben
- oder eben final vor den Parameter im Konstruktor schreiben so wie ich eben schon aufgezeigt habe!
 
Heißt die vielleicht gleich wie der Parameter?
Java:
class TheClass
{
    private Object theObject;

    public Constructor(Object theObject)
    {
        this.theObject = theObject;

        .... anonym:  
             actionPerformed(...)
             {
                 theObject.doSometing(); // Bezieht sich auf den Parameter, nicht die Instanzvariable!

Man könnte dann den Parameter einfach umbenennen, final machen, oder in der anonymen Klasse sowas wie
TheClass.this.theObject.doSometing();
machen
 
OK ich verscuchs mit ein bisschen mehr Code...

Java:
public class CocktailNeuPanel extends JPanel  {
	
	//Das ist das Objekt. EIne Refernz auf das Objekt besteht bereits!!
	 CocktailBar aktuelleCocktailBar;

    
    public CocktailNeuPanel (CocktailBar aktuelleCocktailBar) {
    	 
    	
    	this.aktuelleCocktailBar = aktuelleCocktailBar;
    	
    	...
    	
        
        JButton speicherButton = new JButton("Speichern");
        
                
        
        //SpeicherButton beim ActionListener anmelden
        speicherButton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
			

				aktuelleCocktailBar.addCocktail(cockObj);
					
			}
							
		}
        	
        });
        
	...
        
        

}
 
Wie schon gesagt:

Code:
CocktailNeuPanel.this.aktuelleCocktailBar.addCocktail(cockObj);

oder eben

Code:
public CocktailNeuPanel (final CocktailBar aktuelleCocktailBar)

aber [c]cockObj[/c] bleibt trotzdem noch eine Unbekannte 🙂 Wo ist das jetzt wieder her?
 

Zurück
Oben