# Automatischer Zeilenumbruch bei einer TextArea



## Guest (6. Okt 2006)

So, jetzt sind es genau 50min, die ich mit der Suchfunktion verbracht habe. Meistens hab ich nur gefunden : Benutz doch mal die Suchfunktion  :roll:  oder es hat nicht zu meinem Problem gepasst.

Wie bekomm ich einen automatischen Zeilenumbruch hin ? Hab ne dicke TextArea, aber wenn ich bis zum Ende der ersten Zeile schreibe wird nicht in der zweiten Zeile weitergeschrieben, sondern weiter in der ersten.
Danke schon mal für eure Mühe.


----------



## alaska94 (6. Okt 2006)

Die JTextArea hat eine methode die heißt.
setLineWrapper(boolean b);


```
JTextArea area = new JTextArea("Hallo");
area.setLineWrapper(true);
```

Geschieht vielleicht ein Wunder und es Funktioniert ;-)


----------



## Guest (6. Okt 2006)

Danke das ging aber schnell   
Aber warum J ? Warum JTextArea und nicht einfach TextArea ?
Leider geht es noch nicht   

setLineWrapper(boolean b); -> in den Konstruktor schreiben, oder ???


----------



## alaska94 (6. Okt 2006)

Oh, Verzeihung, es heißt setLineWrap(true);



> Aber warum J ? Warum JTextArea und nicht einfach TextArea ?


Ganz einfach, es ist immer besser mit Swing statt mit AWT zu arbeiten, dass solltest Du dir angewöhnen.



> setLineWrapper(boolean b); -> in den Konstruktor schreiben, oder ???


Nein, das war ein Beispiel, wie diese Methode aufgebaut ist.
Gib doch mal den Quelltext, dann können wir Dir vielleicht besser helfen[/quote]


----------



## Guest (6. Okt 2006)

Ok super danke es funktioniert !
Aber da hab ich schon das nächste Problem festgestellt. Hmm wie soll ich s beschreiben..
Also, wenn man ganz unten am Textfeld angekommen ist, und weiterschreibt, wird zwar weitergeschrieben, aber man kann nicht runterscrollen, um den Text sehen zu können.
Kann man noch irgendwie einen vertikal Pfeil in den Rand des JTextAreas einbauen ?


----------



## Ceos (6. Okt 2006)

```
deineTextarea.setSelection(deineTextArea.getCharCount()-1);
```
ich entschuldige mich falls die methoden nicht exakt so heissen, ich habe das letzte mal vor nem halben jaghr mit SWT/AWT programmiert .... SWING ist zwar vorteilhafter in der benutzung, aber ioch finde die Listen in SWT viel komfortabler und ausserdem hör ich immer das swt schneller als swing ist

zur scrollbar

```
new TextArea(shell,SWT.V_SCROLL);
```


----------



## alaska94 (6. Okt 2006)

Das halte ich für ein Gerücht, dass AWT schneller ist.
Ich würde das mit dem Scrollen so lösen.


```
JTextArea area = new JTextArea("name");
JScrollPane js = new JScrollPane(area);
js.setBounds(int,int,int,int);
this.getContentPane().add(js);
```

Natürlich musst du die int Werte durch richtige Zahlen ersetzen
Gruß


----------



## Ceos (6. Okt 2006)

muss das nicht genau andersrum?? erst das scrollpane dann die jtextarea rein ?? BTW es wurde doch gesagt das SWT/AWT verwendet wurde


----------



## alaska94 (6. Okt 2006)

Nö, das funktioniert so, habe gerade ein Programm laufen, wo ich das genauso  habe.
Und erst duch das add wird ja alles aktiv.
Und er sollte schon gleich richtig lernen Swing zu benutzen.
Wenn Du Dir die heutigen Java-Bücher anschaust, steht immer geschrieben, dass man zwar mit AWT anfangen soll, aber letztendlich Swing benutzen soll.
Ich arbeite in einem großen Softwareunternehmen und wir benutzen nur Swing, daher kann es nicht schlecht sein.

Gruß


----------



## hupfdule (6. Okt 2006)

Ceos hat gesagt.:
			
		

> muss das nicht genau andersrum??
> erst das scrollpane dann die jtextarea rein ??


Tut er doch. Nur damit er die JTextArea der JScrollPane übergeben kann, muss diese natürlich existieren.


> BTW es wurde doch gesagt das SWT/AWT verwendet wurde


Wo?


----------



## hupfdule (6. Okt 2006)

alaska94 hat gesagt.:
			
		

> Wenn Du Dir die heutigen Java-Bücher anschaust, steht immer geschrieben, dass man zwar mit AWT anfangen soll,


In welchen Büchern steht das denn? Das wär mir ganz neu. Ich kenne ausschließlich Empfehlungen _kein_ AWT zu benutzen.

BTW: SWT ist nicht AWT und sollte nicht mit diesem gleichgesetzt werden.


----------



## Ceos (6. Okt 2006)

achso stimmt ... ich hätte es mit js.add(jtext); gemacht

btw.



> Aber warum J ? Warum JTextArea und nicht einfach TextArea ?





> > Aber warum J ? Warum JTextArea und nicht einfach TextArea ?
> 
> 
> Ganz einfach, es ist immer besser mit Swing statt mit AWT zu arbeiten, dass solltest Du dir angewöhnen.


----------



## Guest (9. Okt 2006)

Danke für die Antworten, aber es geht immer noch nicht. So langsam raste ich glaub ich aus.

Dieser Fehlermeldung bekommen ich : Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

	at dvdverleih.EMail.main(EMail.java:90)

Diese Zeile wird unterstrichen : JScrollPanel js = new JScrollPanel(area); 

Die JTextArea und JScrollPanel habe ich oben deklariert, wo ich auch die anderen Textfelder usw. deklariert habe, und die Werte habe ich im Konstruktor gesetzt. Was ist falsch daran ????


----------



## dieta (9. Okt 2006)

Poste mal die Zeilen um diese Zeile.
Ist das alles was er dir als Fehlermeldung ausgibt?

[edit]Wie ich grad' sehe, kann dieser Error so ziemlich alles bedeuten[/edit]


----------



## Guest (9. Okt 2006)

Jo, das ist alles, was ausgespuckt wird >=(


```
public class EMail     extends    Frame                                       
                       implements WindowListener, ActionListener                     
{                                                                           
 Panel p = new Panel();                                                          

 private Button btNew   = new Button(" Neue eMail ");
 private Button btSave  = new Button(" eMail speichern ");
 private Button btSend  = new Button(" eMail verschicken ");
 private Button btClose = new Button(" Schließen ");
 
 private Label l1       = new Label("eMail ");
 private Label l2       = new Label("Empfänger: ");                                          
 private Label l3       = new Label("Betreff: ");  
 private Label l4       = new Label("Text: ");                                                                            

 TextField tf1          = new TextField ();     
 TextField tf2          = new TextField ();
 //JTextArea tf3        = new JTextArea ();//

 JTextArea tf3   = new JTextArea("");
 JScrollPanel js = new JScrollPanel(tf3); 
 
  public EMail()
  { 
  setExtendedState(Frame.MAXIMIZED_BOTH);
 	      
  tf3.setLineWrap(true);
  
 	add(p);                                                                     
 	p.setLayout(null);                                                          
 	p.setBackground(Color.lightGray);                                           
 	this.addWindowListener   (this);
 	btNew.addActionListener  (this);
 	btSave.addActionListener (this);
 	btClose.addActionListener(this);
 	
 	btNew.setBounds  (new Rectangle (750,490,110,21));
 	btSave.setBounds (new Rectangle (750,540,110,21));
    btSend.setBounds (new Rectangle (750,570,110,21));
 	btClose.setBounds(new Rectangle (750,600,110,21));
 	
 	js.setBounds(400,370,300,250);
 	this.getContentPanel().add(js);
```


----------



## dieta (9. Okt 2006)

Das scheint eher ein Problem deiner VM zu sein.
Es könnte vllt. daran liegen, weil du AWT- und Swing-Komponenten miteinander mischst. Das macht man normalerweise nicht, weil die sich nicht miteinander vertragen.

Mehr dazu auch hier.


----------



## hupfdule (9. Okt 2006)

Guck mal in die API: Es gibt kein JScrollPanel, sondern ein JScrollPane (ohne L am Ende).


----------

