String übergabe an andere Klasse

JHounter

Grünschnabel
Huhu,

wenn ich von Klasse A nach Klasse B einen String übergeben will, mach ich das doch über Schnittstellen, oder? Was mache ich denn hier falsch?

Schnittstelle benutzerdaten:
PHP:
package onlineapplication;

public interface benutzerdaten {
    
   public void setUserName(String usr);
   public String getUserName();
   
}

Klasse 1 (ausschnitt):
PHP:
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

         // Neues Fenster erstellen,öffnen und String übergeben
         Hidden bereich = new Hidden();
         bereich.setUserName(name);
         bereich.setVisible(true);
         
}

    public void setUserName(String usr)
    {
        usr = usernames[y];
    }


   public String getUserName()
   {
        return(test2);
   }

Klasse B (Ausschnitt):
PHP:
     public String getUserName()
     {
        return(name);
     }

    public void setUserName(String lol)
    {
         // Username soll nicht neu gesetzt werden
    }

    private void button1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
          getUserName();
          System.out.println(name);
           System.out.println();
        // label2.setText(name);
}

Ich bekomme immer eine leere Ausgabe, sprich name ist leer ("")
 
Zuletzt bearbeitet:
Hallo,

ich kenne deine ganzen Klassen nicht, aber ich muss sage, das was ich hier sehe sieht etwas seltsam aus.

So sieht das mit Gettern und Settern eigentlich aus.

Java:
public class GetterSetterExample{

private String name = null;

public GetterSetterExample(String s){

setName(s);
System.out.println(getName());

}

public void setName(String name){

this.name=name;

}

public String getName(){

return name;

}

public static void main(String[] args){

new GetterSetterExample("Meier");

} 

}


MFG

Sascha
 
Zuletzt bearbeitet von einem Moderator:
huhu,

danke für die hilfe.

Ich habe jetzt hinbekommen in der Klasse A zu setten und zu getten.
Aber wie bekomme ich den String jetzt in Klasse B zu sehen?

PHP:
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {                                        

   getUserName();
   System.out.println(usr);
   
   }   

public String getUserName(){
   return usr;
} 


    public void setUserName(String usr)
    {
        this.usr = usr;
    }

Ich habe ja den String in Klasse A gesetzt, aber wie rufe ich den nun in B auf?
 
z.b. in dem du im Konstruktor von B ein Objekt von A übergibst.

Java:
public class B {
private A a;
public B(A a){
this.a = a;
a.getUserName();
}
}
 
Irgendwie will das nicht funktionieren.

Geht das nicht einfach mit:

in Klasse B:
Code:
  public KlasseB()
    {
       String username = "";
       username = getUserName();
  // bzw. username = KlasseA.getUserName();
   }
 
Halte dich doch an mein Beispiel! Du mußt im Konstruktor Klasse A als Parameter angeben und entsprechend beim erstellen eines Objektes von B ein Objekt vom Typ A übergeben.

Ansonsten schau mal in "Java ist auch eine Insel" rein. Ich denke du mußt da noch einiges grundlegendes lernen.
 
symbol : constructor B()
location: class testapplication.B
new b().setVisible(true);
1 error
BUILD FAILED (total time: 0 seconds)

wenn ich den Konstrukor wie in deinem Beispiel benutze

Code:
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new B().setVisible(true);
            }
        });

non-static variable a cannot be referenced from a static context
 
So noch ein letzter Versuch:
Java:
public class B {
   private A a;
   public B(A a){
      this.a = a;
      System.out.println(a.getUserName());
   }
}

Java:
public class A {

   private String userName;

   public String getUserName(){
      return userName;
   }

   public void setUserName(String userName){
      this.userName = userName;
   }

   public static void main(String [] args){
      A a = new A();
      a.setUserName("zeja");
      B b = new B(a);
   }

}

Objekt b ließt im Konstruktor den Username von A aus und gibt diesen auf der Konsole aus.
 
Zurück