Rückgabe vom ActionListener

Status
Nicht offen für weitere Antworten.

Runnerle

Mitglied
Erstmal Hallo liebe Community,

Im vorraus:
Ich habe mich mit meinem Problem schon beschäftigt spricht gegoogelt und mir gott weiß was durchgelesen, aber ich bin leider zu keinem Ergebnis gekommen das mir weiter geholfen hat oder ich verstanden habe.

Zum Problem:
Ich habe ein Datei Öffnen Button erstellt auf dessen Klick sich ein Dateiauswahldialog öffnet. Der Pfad wird dann in einer Variable gespeichert.
Mein Problem ist jetzt nur dass ich die Variable nur innerhalb meines ActionListeners nutzen kann. Jedoch brauche ich diesen Pfad auch zum Abspeichern, was aber in einem anderen ActionListener geschieht.

Gibt es eine Möglichkeit die Variable da irgentwie rauszubekommen?

mfg Runnerle
 

Ocean-Driver

Bekanntes Mitglied
Du speicherst die Variable in irgendeiner Klasse vom Listener aus.

Beispiel:

void MeinListener (...){

Verwaltungsklasse.setPfad(...);

}
 

Runnerle

Mitglied
In etwa so?


Code:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import java.io.*;

public class Test {
	
		public class meine{
			
			public File out(File hallo){
				
				return hallo;	
				
				}
				
			}
	
public static void main( String[] args ) {
		
	
		JFrame frame = new JFrame("Mein Text");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(200,200);
		frame.setAlwaysOnTop(true);
		
		ActionListener listen = new ActionListener(){
			public void actionPerformed(ActionEvent g){
				JFileChooser asd = new JFileChooser();
				asd.showOpenDialog(null);
				File file = asd.getSelectedFile();
					meine.out(file);
			}
		};
		
			JButton button = new JButton("Action");
			button.addActionListener(listen);
			

		frame.setVisible(true);

} 
}

Jedoch unterkringelt eclipse mir dann die Zeile: meine.out(file);
Meldung: Can not make a static reference to a non-static method out(file) from type Test.meine
 

Ocean-Driver

Bekanntes Mitglied
Du müsstest entweder ein Objekt von "meine" erstellen, oder die funktion statisch (static) deklarieren.

Brauchst du den Pfad für jedes Objekt extra oder ist es immer der gleiche? Wenn es immer der gleiche ist --> mach die Funktion (Und die Variable wo du sie drin speicherst!) statisch.


Hier übergisbt du die File anscheinend, musst sie aber in irgend einer Variable speichern!
 

Runnerle

Mitglied
Zweiter Versuch:
Code:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;

public class Test {
   
      public static class meine{
         static File hallo;
         public static File out(File hallo){
            System.out.println(hallo);
            return hallo;   
            
            }
            
         }
   
public static void main( String[] args ) {
      
   
      JFrame frame = new JFrame("Mein Text");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(200,200);
      frame.setAlwaysOnTop(true);
      
      ActionListener listen = new ActionListener(){
         public void actionPerformed(ActionEvent g){
            JFileChooser asd = new JFileChooser();
            asd.showOpenDialog(null);
            File file = asd.getSelectedFile();
               meine.out(file);
         }
      };
      
         JButton button = new JButton("Action");
         button.addActionListener(listen);
         frame.add(button);

      frame.setVisible(true);

}
}

Habe die Klasse und die Funktion static gemacht, und hab zum Test mal eine Konsolenausgabe in die Funktion geschrieben, die auch ausgeführt wird. Jedoch weiß ich jetzt nicht wie ich den Wert in eine Variable übergeben kann, dich ich dann nachher im Hauptprogramm weiter benutzen kann :/ .
Jetzt im moment gehts mit dem return anscheinend nicht.

mfg Raze
 

Runnerle

Mitglied
So hab es letztendlich dochnoch geschafft :)

Hier mein Lösungsansatz:
Code:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;

public class Test {
   
     
         static File hallo;
         public static File out(File bye){
            System.out.println(bye);
            return hallo = bye;   
            
            }
            
         
   
public static void main( String[] args ) {
      
   
      JFrame frame = new JFrame("Mein Text");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(200,200);
      frame.setAlwaysOnTop(true);
      frame.setLayout(new FlowLayout());
      
      ActionListener listen = new ActionListener(){
         public void actionPerformed(ActionEvent g){
            JFileChooser asd = new JFileChooser();
            asd.showOpenDialog(null);
            File file = asd.getSelectedFile();
               out(file);
         }
      };
      
      ActionListener hear = new ActionListener(){
    	  public void actionPerformed(ActionEvent a ){
    		  	System.out.println(hallo);
    	  }
      };
      
         JButton button = new JButton("Action");
         button.addActionListener(listen);
         frame.add(button);
         JButton button2 = new JButton("Hear");
         button2.addActionListener(hear);
         frame.add(button2);
      frame.setVisible(true);

}
}

Vielen Dank für die Hilfe Ocean-Driver, du hast mir wirklich sehr geholfen :)

mfg Runnerle
 

Ocean-Driver

Bekanntes Mitglied
Das ist ein falscher Ansatz. Wenn du die Datei übergibst, brauchst du sie doch nicht noch zurückgeben!

Am besten wäre:

Code:
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.*; 
import java.io.*; 

public class Test {

String pfad = "";


public static void savePfad(File MyFile)
{
this.pfad = MyFile.getAbsolutPath(); 
}




public static void main(String[] args){

File Datei = new File("");

savePfad(Datei);


}
 

toenjes

Mitglied
also ich habe dasselbe problem...

der öffnen-dialog wird vom Action listener aufgerufen und bekommt dann den dateipfad als string geliefert:

Code:
//datei öffnen	
Action actionOpenFile = new AbstractAction( "Datei Öffnen" ) 
{ 
  	public void actionPerformed(ActionEvent e) 
  	{
    		//dateipfad bekommen
    		filepath = createDialog.dialogOpenFile();
  	} 
};
da funktioniert auch, mit System.out.println(filpath) innerhalb des ActionListeners bekomme ich den dateipfad....
aber der actionListener ist teil der klasse showMenu, und ich möchte, dass diese den string filepath, wenn der öffnen dialog aufgerufen wurde, zurückgibt....
wie geht das und ist das überhaupt möglich?
ich verstehe die hier genannten ansätze nicht so wirklich ^^
 

Runnerle

Mitglied
Ocean-Driver hat gesagt.:
Das ist ein falscher Ansatz. Wenn du die Datei übergibst, brauchst du sie doch nicht noch zurückgeben!

Am besten wäre:

Code:
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.*; 
import java.io.*; 

public class Test {

String pfad = "";


public static void savePfad(File MyFile)
{
this.pfad = MyFile.getAbsolutPath(); 
}




public static void main(String[] args){

File Datei = new File("");

savePfad(Datei);


}

Stimmt du hast recht, ich werde das nochmal überarbeiten.

Mfg
 

Ocean-Driver

Bekanntes Mitglied
Ich finde es hier so krass, dass Leute bereits mit der GUI-Programmierung anfangen, aber nichtmal wissen, wie man etwas in einer Variable speichert!

Das event gibt GARNICHTS zurück, dass Event übergibt die Variable einfach an eine Klasse (zum Beispiel über eine Settermethode)


Code:
class MyConfig{

private String pfad="";

public void setPfad(String pfad){
this.pfad = pfad;
}

}
 

toenjes

Mitglied
mir ist klar das ein event nichts zurückgibt -.- soweit war ich auch bereits

deshalb brauche ich ja auch eine andere lösung

Code:
public class CDDMenu extends JPanel implements ActionListener
{
	public static CDDFile createFile = new CDDFile();
	
	//Variabel für die Dateiinhalte setzten
            public String filepath = "";

            public void showMenu(JFrame rahmen)
            {
    	         //menü
    	        JMenuBar menuBar = new JMenuBar(); 
    		
    	        //menüaktionen
   	       //datei öffnen	
	      Action actionOpenFile = new AbstractAction( "Datei Öffnen" ) 
    	      { 
  			public void actionPerformed(ActionEvent e) 
  			{
    			//dateipfad bekommen
    			filepath = createDialog.dialogOpenFile();
  			} 
                    };
    	
    	            //Datei-Menü	
	            JMenu fileMenu = new JMenu( "Datei" ); 
		menuBar.add( fileMenu ); 
		rahmen.setJMenuBar( menuBar );
		fileMenu.add( new JMenuItem(actionOpenFile) );	
			
		System.out.println(filepath); 		        
 }

 public void actionPerformed(ActionEvent ae)
    {
      
    }

so, das ist mein code, wenn aich ein wenig gekürzt......
wie stelle ich es den nun an, dass die variabel filepath ausgegeben wird, weil wenn ich das programm jetzt aufrufe, wird nur am anfang der inhalt von filepath ausgegeben..... und zu dem zeitpunkt ist ja nix in der variabel!
wie stelle ich also nun fest, dass das öffnen-menü gestartet wurde und die variabel filepath gesetzt?
 

toenjes

Mitglied
Code:
public class CDDDialog extends JPanel implements ActionListener
{
    //dialoge für das menü
    public String dialogOpenFile()
    {
     JFileChooser fc = new JFileChooser();
     fc.showOpenDialog(null);
     return fc.getSelectedFile().toString();
    }
}

es wird mit der methode also der öffnen-dialog gestartet und die ausgewählte datei als String übergeben... das funktioniert dann auch soweit.... innerhalb meines events kann ich mit System.out.println(filepath); den dateipfad anzeigen lassen.....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
R Methode Rückgabe Java Basics - Anfänger-Themen 10
D Methode mit Übergabe double und Rückgabe String Java Basics - Anfänger-Themen 2
J Rückgabe-Problem Java Basics - Anfänger-Themen 10
B Rückgabe von zwei Werten: String und double Java Basics - Anfänger-Themen 14
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
J Funktionen auf der Rückgabe eines Stacks (pop) Java Basics - Anfänger-Themen 6
karlmasutra Klassen Rückgabe eines Wertes aus einer anderen Klasse Java Basics - Anfänger-Themen 3
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
L [Verständnisproblem] Array wird trotz void rückgabe verändert. Java Basics - Anfänger-Themen 5
S Rekursion Rückgabe - Türme von Hanoi Java Basics - Anfänger-Themen 16
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
F Get/Post als eigener Thread mit Rückgabe Java Basics - Anfänger-Themen 5
L Probleme bei Rückgabe eines Arrays in einer Methode Java Basics - Anfänger-Themen 47
L Frage zur Rückgabe von Werten bei Methoden Java Basics - Anfänger-Themen 4
P Rückgabe erflogt nicht als Double Java Basics - Anfänger-Themen 2
D Methoden ArrayList Rückgabe bringt komische Werte Java Basics - Anfänger-Themen 12
M Übergabe / Rückgabe Java Basics - Anfänger-Themen 6
A Rückgabe in for-Schleife Java Basics - Anfänger-Themen 2
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
G Methoden mehrdimonsionale Arrays als Rückgabe Java Basics - Anfänger-Themen 2
S Methode rückgabe wiederverwenden Java Basics - Anfänger-Themen 4
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
llabusch Methoden Rückgabe einer Methode verwerden Java Basics - Anfänger-Themen 1
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
R public static void Rückgabe Java Basics - Anfänger-Themen 5
H Array wird verändert ohne Rückgabe? Java Basics - Anfänger-Themen 7
S Rückgabe von einem Array Java Basics - Anfänger-Themen 7
S Problem mit Rückgabe Wert von Methoden Java Basics - Anfänger-Themen 5
M Serialize - Fehler bei Rückgabe von Objekt Java Basics - Anfänger-Themen 5
R CMD Rückgabe durchlesen Java Basics - Anfänger-Themen 14
W Rückgabe Methode mit Feld Java Basics - Anfänger-Themen 4
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
N Rückgabe der Werte funktioniert nicht Java Basics - Anfänger-Themen 9
F Problem bei Rückgabe von StringBuffer aus Methode Java Basics - Anfänger-Themen 6
N HashMap fehlerhafte Rückgabe Java Basics - Anfänger-Themen 7
K Problem mit der Rückgabe Java Basics - Anfänger-Themen 3
R Rückgabe Array Java Basics - Anfänger-Themen 22
G Klasse überschreiben wenn Rückgabe über Methode Java Basics - Anfänger-Themen 6
M Methode mit Rückgabe Java Basics - Anfänger-Themen 2
D Maximum Subarray Problem; Problem mit der Rückgabe Java Basics - Anfänger-Themen 10
N Methoden und deren Rückgabe Java Basics - Anfänger-Themen 4
D Rückgabe einer Klasse Java Basics - Anfänger-Themen 20
H TreeMap Rückgabe - Compiler-Warnings Java Basics - Anfänger-Themen 9
M Rückgabe bei Exception Java Basics - Anfänger-Themen 4
H Rekursion und Rückgabe Java Basics - Anfänger-Themen 11
K Rückgabe aus Formular Java Basics - Anfänger-Themen 3
S HashMap: Rückgabe des key zu bestimmten value Java Basics - Anfänger-Themen 3
B "vollständige" Resultat Rückgabe Java Basics - Anfänger-Themen 8
G Problem mit der Rückgabe von einem Array Java Basics - Anfänger-Themen 3
A Beschreibung von Code und Rückgabe von Anzahl in ArrayList Java Basics - Anfänger-Themen 5
C Parameter rückgabe nach Prüfung an Klasse/Methode Java Basics - Anfänger-Themen 2
B JavaFilter true rückgabe Java Basics - Anfänger-Themen 23
S Rückgabe eines eingelesenen 2D Arrays aus Klasse heraus Java Basics - Anfänger-Themen 3
J datentyp -objectTyp Rückgabe Java Basics - Anfänger-Themen 2
zilti PHP-Script aufrufen und Rückgabe lesen Java Basics - Anfänger-Themen 2
G Array Rückgabe aus Programm Java Basics - Anfänger-Themen 6
0 Probleme bei Threads mit Rückgabe. Java Basics - Anfänger-Themen 6
C Rückgabe bei methoden Java Basics - Anfänger-Themen 2
S Probleme mit InputStream- Rückgabe Java Basics - Anfänger-Themen 4
G Warum ist die Rückgabe kein Integer? Java Basics - Anfänger-Themen 5
G Rückgabe Java Basics - Anfänger-Themen 6
G Rückgabe mehrdimensionales Array Java Basics - Anfänger-Themen 3
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
G Rückgabe einer Methoden bei Schließen des Fensters Java Basics - Anfänger-Themen 3
M Rückgabe funktioniert nicht! Java Basics - Anfänger-Themen 4
F Rückgabe eines Array´s aus einer Methode Java Basics - Anfänger-Themen 3
M Rückgabe oder Parameter? Java Basics - Anfänger-Themen 5
H Konstruktor mit Rückgabe Java Basics - Anfänger-Themen 13
L Rückgabe Java Basics - Anfänger-Themen 4
D Rückgabe von Arrays Java Basics - Anfänger-Themen 6
E ActionListener Java Basics - Anfänger-Themen 4
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
J Array Actionlistener Java Basics - Anfänger-Themen 9
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
P Erste Schritte ActionListener Java Basics - Anfänger-Themen 2
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb ActionListener Java Basics - Anfänger-Themen 1
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
N Probleme mit dem ActionListener Java Basics - Anfänger-Themen 4
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
F Mehrere Buttons mit einem ActionListener abdecken Java Basics - Anfänger-Themen 24
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben