Eingegebenen Text in JOptionPane in andere Klasse weitergeben

RunOrVeith

Mitglied
Hallo,
ich habe ein problem.
Ich habe eine Klasse erstellt, die ein Popup JOptionPane aufmacht, in dass man den Pfad von etwas eigeben soll

Java:
import javax.swing.JFrame;
import javax.swing.JOptionPane;




public class POPUPPFAD 
{
   JFrame frame;
   public String pfad;

   public POPUPPFAD()
   {

	   Object[] posibilities = null;
	   pfad = (String)JOptionPane.showInputDialog
	   ("Bitte den Pfad der Datenbank eintragen");
	   
   }
  
}


das funktioniert wunderbar.
Nun brauche ich jedoch das, was dort hineingeschrieben worden ist in einer anderen Klasse, um den Namen der Datenbank herauszufinden

Das habe ich mit dieser methode (in der anderen Klasse) gemacht:
Java:
   public void tabellennamen() 
    //holt sich den Namen der Tabelle für die
    //Such und Änderabfrage
    {
    	
    	String dateipfad = pfad;
    	int lastslashpos = dateipfad.lastIndexOf("/"); //Stelle des letzen / um alles dannach auszulesen
    	woher = dateipfad.substring(lastslashpos +1);  //liest den namen aus und lässt keine negativen / stellenwerte durchgehen
    };


allerdings erkennt er einfach nicht, dass ich mit pfad das meine, was eben vorhin geschrieben wurde.

Weiss jemand, wie ich das hinbekomme?
Vielen Dank!
 
Wenn du die Variable pfad in der Klasse "POPUPPFAD" public static machst kannst du von der anderen Klasse "X" diese Variable abfragen in dem du POPUPPFAD.pfad schreibst.

Besser wäre allerdings wenn du der Klasse "X" den String beim erstellen mitteilst. Entweder im Konstuktor oder mit einer setter Methode

Beispiel
Java:
import javax.swing.JFrame;
import javax.swing.JOptionPane;
 
 
 
 
public class POPUPPFAD 
{
   JFrame frame;
   public String pfad;

   X klasseX = new X();
 
   public POPUPPFAD()
   {
 
       Object[] posibilities = null;
       pfad = (String)JOptionPane.showInputDialog
       ("Bitte den Pfad der Datenbank eintragen");
       
       klasseX.setPfad(pfad);
   }



Java:
class X
{
    private String pfad = "";

    // Variable über Konstukor setzen
    public X (String pfad)
    {
          this.pfad = pfad;
    }

    public X ()
    { }



     // Variable über Setter setzen
    public void setPfad (String pfad)
    {
          this.pfad = pfad;
    }

    public void tabellennamen() 
    //holt sich den Namen der Tabelle für die
    //Such und Änderabfrage
    {
        
        String dateipfad = this.pfad;
        int lastslashpos = dateipfad.lastIndexOf("/"); //Stelle des letzen / um alles dannach auszulesen
        woher = dateipfad.substring(lastslashpos +1);  //liest den namen aus und lässt keine negativen  / stellenwerte durchgehen
    };
 
Zuletzt bearbeitet:
Nun ja. Ich sehe im Gegebenen wenig Sinn, dieses Popup in eine extra Klasse zu setzen. Genügt es nicht den Einzeiler aus POPUPPFAD in die Methode
Code:
tabellennamen()
einzufügen und gut ist?
Sprich:
Java:
   public void tabellennamen() 
    //holt sich den Namen der Tabelle für die
    //Such und Änderabfrage
    {
        
        String dateipfad = (String)JOptionPane.showInputDialog
       ("Bitte den Pfad der Datenbank eintragen");

        int lastslashpos = dateipfad.lastIndexOf("/"); //Stelle des letzen / um alles dannach auszulesen
        woher = dateipfad.substring(lastslashpos +1);  //liest den namen aus und lässt keine negativen / stellenwerte durchgehen
    };

Von public static und nicht-final sollte man die Finger lassen und die Abhängigkeiten zwischen den Klassen weiter erhöhen ist in diesem Fall auch unnötig.
 

Zurück
Oben