# String übergeben



## Don_Beckmann (28. Sep 2017)

Ich möchte gerne mehrere Strings an eine andere Form übergeben. 
Derzeit habe ich das bisher mit einem Benutzernamen hinbekommen. Beim Login wenn ich auf ok klicke übergibt er folgende Daten um den Benutzer zu füllen


```
if(rs.next()){
            Main c=new Main(txtusername.getText());
            c.start(txtusername.getText());
        }
```

In der neuen Form wird dann wie so üblich dies aufgeführt


```
public class Main extends javax.swing.JFrame {

    String benutzer="falsch";
   
    public Main(String benut) {
    setContentPane(new JLabel(new ImageIcon("C:\\Users\\René\\Desktop\\Zu verwenden\\main.png")));
    initComponents();
    label1.setText(benut);
    benutzer=benut;
  
   
}
```

das ganze klappt bis dahin. Nun möchte ich allerdings noch einen weiteren String übergeben der nicht in den label1 gehört sondern in den label2. Wie ist dies am besten durchzuführen ? Über jede Hilfe bin ich dankbar.


----------



## Kababär (28. Sep 2017)

Da du eh einen Konstruktor aufrufst und somit ein frisches Objekt vor Augen hast, würde ich dafür einfach setter verwenden.

```
if(rs.next()){
            Main c=new Main();
            c.setLabel1Text(txtusername.getText());
            /* c.setLabel2Text(whatever.getText());
            c.start(txtusername.getText());
        }
```


----------



## mrBrown (28. Sep 2017)

Ich würde mit Trennung bin GUI und Daten anfangen.
Und dann die Strings (die sicher zusammen gehören?) in ein Objekt auslagern, dürfte das leichter machen


----------



## Don_Beckmann (29. Sep 2017)

Kababär hat gesagt.:


> Da du eh einen Konstruktor aufrufst und somit ein frisches Objekt vor Augen hast, würde ich dafür einfach setter verwenden.
> 
> ```
> if(rs.next()){
> ...


Das ganze funktioniert leider nicht. Er kann das setLabel2Text nicht erkennen.



mrBrown hat gesagt.:


> Ich würde mit Trennung bin GUI und Daten anfangen.
> Und dann die Strings (die sicher zusammen gehören?) in ein Objekt auslagern, dürfte das leichter machen



Wie ist das ganze gemeint. Ich lese derzeit nur den benutzernamen aus label1 aus der dann auch wieder an die alte Form zurück gegeben wird. Es sollen insgesamt also 5 Dinge ausgelesen werden. Einmal der Benutzername und dann die IDs von 1-4 mit dem Text wofür ich extra eine Tabelle vorgegeben habe. (MySQL Datenbank)


----------



## mrBrown (29. Sep 2017)

Don_Beckmann hat gesagt.:


> Das ganze funktioniert leider nicht. Er kann das setLabel2Text nicht erkennen.


Und du hast keine Idee, warum er das nicht erkennt?




Don_Beckmann hat gesagt.:


> Wie ist das ganze gemeint. Ich lese derzeit nur den benutzernamen aus label1 aus der dann auch wieder an die alte Form zurück gegeben wird. Es sollen insgesamt also 5 Dinge ausgelesen werden. Einmal der Benutzername und dann die IDs von 1-4 mit dem Text wofür ich extra eine Tabelle vorgegeben habe. (MySQL Datenbank)


Was ist für dich eine "Form"?

Gemeint war: die fünf Dinge gehören doch sicher zusammen? Also kann man die in einer Klasse kapseln 
Außerdem mischt du GUI und Datenbank in einer Klasse, deutlich leichter ist es meist, das zu trennen.


----------



## Don_Beckmann (29. Sep 2017)

Hallo,

ich habe derzeit ein Login System. Sobald alle Daten richtig sind die auch in der Datenbank vorhanden sind, übertrage ich den Benutzernamen wie folgt


```
kurs c=new kurs(label1.getText());
        c.setVisible(true);
        setVisible(false);
```

der Benutzername wird mir dann auch angezeigt. Sobald ich den Button drücke öffnet sich eine neue JFrame Form in der ich ein Textfield  mit einer Datenbank Connection habe die dann die ids 1-4 abfragen soll sobald ich den Ok button geklickt habe. Bisher habe ich es nur für eine ID um mich dort näher ran zu tasten (die Abfrage funktioniert ohne Probleme). Allerdings soll dies nun auch im Richtigem Label angezeigt werden wo mein Problem liegt.

Um auf deine Frage zurückzukommen was für mich eine Form ist "JFrame Form".

Bei

```
c.setLabel2Text("Testwert");
```
kann er

```
setLabel2Text
```
nicht finden.


----------



## mrBrown (29. Sep 2017)

Don_Beckmann hat gesagt.:


> ```
> kurs c=new kurs(label1.getText());
> c.setVisible(true);
> setVisible(false);
> ```


Du solltest dringend an deiner Benennung arbeiten 



Don_Beckmann hat gesagt.:


> Bei
> 
> ```
> c.setLabel2Text("Testwert");
> ...



Und du hast keine Idee, warum er das nicht finden kann?


----------



## Don_Beckmann (29. Sep 2017)

mrBrown hat gesagt.:


> Und du hast keine Idee, warum er das nicht finden kann?



Nein. Ich habe nun angefangen es in class aufzubauen. Das ablegen funktioniert schonmal Gut. Allerdings beim Abfragen kommen schwierigkeiten


----------

