# JTextarea mit automatischem Scrolling



## H3llGhost (2. Mrz 2008)

Hallo Leute,

ich habe vor eine Server-GUI zu gestalten, aber mein Problem mit den JTextarea ist, dass es nicht runterscrollen möchte bzw. ich bekomme es nicht hin.
Desweiteren würde ich mich dadrüber freuen, wenn die Zeile zu lang für das Textarea ist, dass diese automatisch gebrochen wird.
Könntet ihr mir helfen?
Danke im Voraus!

Mein Code sieht bis jetzt wie folgt aus:


```
JScrollPane scroll = new JScrollPane();
    ta = new JTextArea();

    add(ta);

    einPanel.add( scroll );

    int max;
    for ( int i = 0; i < 100; i++ )
    {
      ta.append( i + "\n" );

      //Vertikale Scrollbar auf Maximum setzen
      max = scroll.getVerticalScrollBar().getMaximum();
      scroll.getVerticalScrollBar().setValue( max );
      scroll.repaint();
    }
```

Habe es nun so gemacht ...
Bei add(ta); haperts aber ...

Laut folgender Seite http://www.tutorials.de/forum/java/246573-jtextarea-und-jscrollpane.html muss da noch was hin, aber wenn ich das hinmache kommt garnichts ...


----------



## Marco13 (2. Mrz 2008)

Was ist denn das "this", zu dem du die TestArea mit dem "add" addest?

Vermutlich wolltest du sowas 

```
ta = new JTextArea();
JScrollPane scroll = new JScrollPane(ta);
//    add(ta); // WEG
```

Zeilenumbruch:
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTextArea.html#setLineWrap(boolean)


----------



## H3llGhost (3. Mrz 2008)

Wenn ich das add(ta) wegnehme kommt einfach ein weißes Feld ohne irgendwelche Textanzeigen.

Habt es nun so:


```
JScrollPane scroll = new JScrollPane();
    ta = new JTextArea();

    add(ta);

    einPanel.add( scroll );

    int max;
    for ( int i = 0; i < 100; i++ )
    {
      ta.append( i + "\n" );

      //Vertikale Scrollbar auf Maximum setzen
      max = scroll.getVerticalScrollBar().getMaximum();
      scroll.getVerticalScrollBar().setValue( max );
      scroll.repaint();
    }
```


----------



## sliwalker (3. Mrz 2008)

Hoi,

Marco hat schon recht, Du musst halt nicht ta adden sondern scroll und zwar nur scroll.
Das ScrollPane ist ein Container wie ein Panel.

Und dem Konstruktor von ScrollPAne übergibst Du die Komponente die er scrollen soll...also ta.

Falls das was Du geschrieben hast klappen sollte...mach es weg. Das ist so falsch. Du ersparst Dir später Zeit und Mühe, wenn Du es direkt richtig addest.


```
ta = new JTextArea();
    JScrollPane scroll = new JScrollPane(ta);

    // Jetzt entweder hier...add(scroll)
    add(scroll);

    // ... oder hier einPanel.add(scroll)
    einPanel.add( scroll );

    int max;
    for ( int i = 0; i < 100; i++ )
    {
      ta.append( i + "\n" );

      //Vertikale Scrollbar auf Maximum setzen
      max = scroll.getVerticalScrollBar().getMaximum();
      scroll.getVerticalScrollBar().setValue( max );
      scroll.repaint();
    }
```


greetz
SLi


----------



## H3llGhost (4. Mrz 2008)

Hallo,

habe es nun so:


```
JScrollPane scroll = new JScrollPane();
    ta = new JTextArea();

    //add(scroll);

    einPanel.add( scroll );
```

und so


```
JScrollPane scroll = new JScrollPane();
    ta = new JTextArea();

    add(scroll);

    //einPanel.add( scroll );
```

probiert.
Aber beides geht nicht ...
Habt ihr eine Ahnung, woran das liegen kann?


----------



## Saxony (5. Mrz 2008)

Wer lesen kann, ist klar im Vorteil. 

Schau dir mal deine ersten beiden Zeilen an und dann die von deinen Vorpostern.

bye Saxony


----------



## H3llGhost (5. Mrz 2008)

Ja habe ich auch gesehen ... 
Ist mir heute in der Schule aufgefallen und dann hatte ich nochmal hier geguckt und siehe da, du hast scheinbar das Selbe wie ich entdeckt ... 
Danke für eure Hilfe!


----------

