# ArrayList aus KlasseA in KlasseB in JTextArea ausgeben



## tOBIvAAN (7. Jan 2010)

Hi

hab bisher noch nichts brauchbares gefunden was mir hilft. Vielleicht hock ich auch einfach schon zu lang am Code...

Mein Problem: ich habe eine Klasse "CWeightwatcherstabelle" mit einer ArrayList und eine Klasse "GrO_RG" die die GUI mit einer JTextArea & JButton enthält. Wie bekomme ich nun via Button-Klick die ArrayList in die TextArea?

Klasse CWeightwatcherstabelle:

```
public class CWeightwatcherstabelle
{
  //ArrayList anlegen
  private ArrayList <String> tabelle;
  private JTextArea Ausgabe;?????????????

   //Konstruktor
   public CWeightwatcherstabelle(JTextArea Ausgabe1)
   {
     this.Ausgabe = Ausgabe1;????????????
     tabelle = new ArrayList<String>();
   }
   
   //Werte in Tabelle
   public void werte()
   {
    tabelle.add("Brot, jede Sorte, 1 Scheibe  - 2 Punkte ");
    tabelle.add("Erdnusscreme, 1 TL, 5g - 1Punkt ");
    tabelle.add("Apfelkompott/-mus mit Zucker, 2 TL - 0,5 Punkte");
    tabelle.add("Eisbecher mit Sahne & Früchte, 1 kl. Becher, 170g - 8,5 Punkte");
   }
   
   //Tabelle ausgeben
   public void werteAusgeben()
   {
    for (String werte : tabelle)
    {
        Ausgabe.append(werte);??????????
        //System.out.println(werte);
    }
   }
}
```
(Ausgabe mit System.out.println(werte) läuft!!)

verkürze GUI:

```
class GrO_RG extends JFrame
{
       //private CWeightwatcherstabelle WWTab;??????????????

       //Textfeld erstellen
       private JComponent createTextArea()
       {
         //(Zeilen, Spalten)
         JTextArea Ausgabe = new JTextArea (10, 45);

         //Text
         Ausgabe.append("");

         //Panel
         JPanel p_Ausgabe = new JPanel();
                p_Ausgabe.add(new JScrollPane(Ausgabe));
         return p_Ausgabe;
       }
       //Buttons erzeugen
       private JComponent createButtons()
       {

         JButton b_tabelle = new JButton ("WeightWatchers Tabelle");
         
         //Aktion
         b_tabelle.addActionListener(new ActionListener()
         {
          public void actionPerformed(ActionEvent e)
          {
            //WWTab = new CWeightwatcherstabelle(); ??????????
          }
         });
         
         //Panel
         JPanel Buttons = new JPanel();
                Buttons.add(b_tabelle);
         return Buttons;
       }
...
```

Die Zeilen mit den Fragezeichen dahinter sind meine Lösungsansätze...

Danke für eure Hilfe!!
Greetz


----------



## DerEisteeTrinker (7. Jan 2010)

übergib deiner gui im konstruktor doch einfach eine referenz auf die klasse mit der ArrayList in der es natürlich ne methode gibt mit deren hilfe du die ArrayList auslesen kannst


----------



## tOBIvAAN (7. Jan 2010)

Und als Code würdest du das wie schreiben?? 

Ich mein 1.:
Wie kann ich die Werte einer ArrayList speichern um Sie einer anderen Klasse zu übergeben? 

und 2.:
wie schreibt man so ne referenz!?

stehe voll aufem schlauch...


----------



## tOBIvAAN (12. Jan 2010)

hab mittlerweile das da:

```
public String werteAusgeben()
    {
        String resultTabelle = "";
        
        for (int i = 0; i < tabelle.size(); i++) {
            resultTabelle += tabelle.get(i);
        }
        return resultTabelle + "testtext";
    }
```

Allerdings das einzige was angezeigt wird ist "testtext"

Kann mir niemand helfen??


----------



## nickname (12. Jan 2010)

Hi,

```
String[] liste1 = {"Peter", "Andreas", "Rita", "Günther", "Frank", "Holger", "Sabine", "Mike", "Karsten"};
		
		
			private void sortierenArrayList(String[] stringArray)
			{
				List<String> liste2 = new ArrayList<String>();
					for(int x = 0; x < stringArray.length; x++)
					{
						liste2.add(stringArray[x]);
					}
				
				System.out.println("Vor der Sortierung");
				System.out.println(liste2);
}
```
Jetzt übergibst du der Methode einen liste1...



			
				tOBIvAAN hat gesagt.:
			
		

> wie schreibt man so ne referenz!?


Sohn ref = new Sohn();
     |
Datentyp speichert die Referenz auf das Objekt vom Typ Sohn, dass mit new und ...() gebildet wird.

gruß nickname


----------



## eRaaaa (12. Jan 2010)

nickname hat gesagt.:


> ```
> List<String> liste2 = new ArrayList<String>();
> for(int x = 0; x < stringArray.length; x++)
> {
> ...



==>

```
List<String> liste2 = Arrays.asList(stringArray);
```

:toll: :bae:


----------



## tOBIvAAN (12. Jan 2010)

Vielen Dank für die Antworten! Aber des bringt mich nicht wirklich weiter...

Wie man eine ArrayList ausliest und mit System.out.println ("etc") ausgibt weiß ich. Mir geht es darum, diese ArrayList in einem einzigen String an eine andere Klasse zu übergeben. 

Die muß nicht sortiert werden und nichts. Einfach nur zusammenfassen und zurückgeben!

Grüße & Danke


----------



## eRaaaa (12. Jan 2010)

tOBIvAAN hat gesagt.:


> Vielen Dank für die Antworten! Aber des bringt mich nicht wirklich weiter...
> 
> Wie man eine ArrayList ausliest und mit System.out.println ("etc") ausgibt weiß ich. Mir geht es darum, diese ArrayList in einem einzigen String an eine andere Klasse zu übergeben.
> 
> ...



Ähm. System.out.println ruft immer toString() auf. D.h. wenn dir die Ausgabe von System.out.print gefällt, nimm doch einfach diesen String und gebe den zurück?

```
List<String> foo = new ArrayList<String>();
	foo.add("hallo");
	foo.add("welt");
	//usw.
	String s = foo.toString();
```

Ansonsten bastele dir alle Strings mit Hilfe des StringBuilders selbst zusammen.


----------



## Landei (12. Jan 2010)

Eine Liste von Strings bekommt man so in einen String:

```
StringBuilder sb = new StringBuilder();
for(String s : list) {
   sb.append(s);
   //Falls Zeilenumbruch oder so gewünscht:
   sb.append("\n");
}
String result = sb.toString();
```


----------



## tOBIvAAN (13. Jan 2010)

Erstmal Danke für die Antworten! Hat mich ein ganzes Stück weiter gebracht...
Aaaaber, es funktioniert immernoch nicht. Ich bekomme immer nur meinen "TestText" ausgegeben. Von der ArrayList ist weiterhin nichts zu sehen.

Hier mal meine Versuche:

```
//Option for Schleife
        String resultTabelle = "";
        
        for (int i = 0; i < tabelle.size(); i++) {
            resultTabelle = tabelle.get(1);   
        }
        return resultTabelle + "TestText";
        
        
        
        //Option .toString
        s = tabelle.toString();
        return s + "TestText";
        
        
        
        //Option String Builder
        StringBuilder sb = new StringBuilder();
        for(String s : tabelle) {
            sb.append(s);
        }
        String result = sb.toString();
        return result + "TestText";
```

Jemand ne Ahnung woran es liegen könnte? Eigentlich sollte es doch laufen...


----------



## eRaaaa (13. Jan 2010)

Mal doof gefragt: Bit du dir denn sicher dass die ArrayList Strings enthält? 
Sieht nämlich eher nicht so aus.

System.out.println(tabelle.size()); //0 ?


----------



## tOBIvAAN (13. Jan 2010)

Ganz oben - erster Code - Klasse CWeightwatcherstabelle:...


----------



## tOBIvAAN (14. Jan 2010)

OK - jetzt hab ich's.

@eRaaaa: du hattest Recht. 

Es sind zwar Strings in der ArrayList geschrieben, allerdings hab ich diese nicht in den Konstruktor geladen bzw. in meine Ausgabe-Methode. D.h. für meine Ausgabe-Methode haben keine Werte existiert.:autsch:

Naja - trotzdem Danke für eure Antworten!!:applaus:


----------

