# Problem mit der Kellerprozedur und und und...



## chuckleberrie (14. Mrz 2005)

Hallo erstmal,
Ich schreibe in Informatik meine facharbei und hab nun das problem dass ich dafür Java lernen muss, bis jetzt kann ich nur visual basic und Delphi. So weit so gut. Ich muss in java Einen bidirektionalen Drucker programmieren, das heißt dass auf der einen seite ein textfeld steht in dem ein ganz normaler text drinsteht und auf der anderen seite Dann der text nochmal steht, bloß dass jede 2te zeile umgekehrt ist, d.h. in einen Keller "geschubst" wird und umgekehrt wieder heraus kommt. Ich hatte vor das ganze der einfachheithalber als Applet zu programmieren. Kann mir jemand vielleicht bei der ein oder anderen sache unter die Arme greifen? Zum beispiel bei der Kellerprozedur?? Das wäre sehr nett. Ich hab mir übrigens weder das dacharbeitsthema noch das fach ansich ausgesucht und bin deshalb relativ verzweifelt.
Danke schonmal im vorraus :bahnhof:


----------



## Memphis (14. Mrz 2005)

Änder mal das Topic!


----------



## mic_checker (14. Mrz 2005)

Na dann poste doch mal konkrete Fragen.
Btw. musst du das per Keller machen? Oder könntest du auch einfach ne alternative Methode holen um das ganze "rückwärts" auszugeben?

Du könntest z.B. jede zweite Zeile in nen StringBuffer umwandeln und reverse() anwenden:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/StringBuffer.html#reverse()

Ansonsten poste mal konkrete Fragen zu deinem Prob, da hier niemand das ganze Prog für dich schreiben wird.


----------



## ugh_bough (14. Mrz 2005)

grobe vorgehensweise:

du nimmst 2 JTextAreas

```
JTextArea area1 = new JTextArea();
JTextArea area2 = new JTextArea();
```

dann hörst du in area1 nach keyEvents. Das heisst es wird automatisch eine Methode aufgerufen, wenn immer in Knopf innerhalb von area1 gedrückt wird.

```
area1.addKeyListener(new KeyAdapter()
{
    public void keyTyped(KeyEvent e)
    {
        // dies ist die automatisch aufgerufene methode
    }
});
```

diese methode wird den text in deinem area1 lesen und jede 2te zeile herumdrehen. am ende wird der komplette text in area2 geschrieben

```
area1.addKeyListener(new KeyAdapter()
{
    public void keyTyped(KeyEvent e)
    {
        // dies ist die automatisch aufgerufene methode

        JTextArea area = (JTextArea)e.getSource(); // das ist ein verweis auf area1
        int lines = area.getLineCount(); // jetzt weisst du wie viele zeilen es in dem JTextArea gibt

        String newText = ""; // das hier wird später in area2 landen

        for (int i = 0; i < lines; i++) // jede zeile
        {
            int anf = getLineStartOffset(i);
            int end = getLineEndOffset(i); // jetzt weiss du von wo nach wo die zeile geht
            int length = end - anf + 1; // das ist die länge der zeile (könnte auch ohne die 1 sein)

            String zeile = area1.getText(anf, length); // eine zeile
  
            if (i % 2 == 1) // jede zweite zeile
            {
                newText += drehrum(zeile); // jede zweite zeile rumdrehen
            }
            else
                newText += zeile; // diese zeile bleib so rum
        }

        area2.setText(newText); // nun neuen text einfügen
    }

     private String drehrum(String zeile)
     {
         String retZeile = ""; // das wird die umgedrehte zeile sein

         for (int i = zeile.length() -1; i >= 0; i--) // lies zeichenweise von hinten
             retZeile += zeile.charAt(i); // und hänge jedes zeichen an

         return retZeile;
     }
});
```

kein gewähr (musst bestimmt noch fehler ausmerzen)
verbesserungspotential: benutze StringBuffers an den mit * markierten Stellen. Die sind schneller funzen aber ähnlich (keine Operatoren, sondern methoden-aufrufe)
nochmal verbesserungspotential: man braucht nicht den kompletten neuen text berechnen, wenn man nur ein zeichen ändert. das kann man auf die neuberechnung von der stelle an der man geändert hat an verringern (evtl. wird ja ein \n eingefügt, dann müssen alle zeilen drunter umgedreht werden)

nochmal: Keine gewähr


----------



## ugh_bough (14. Mrz 2005)

@ mic_checker sorry jetzt hast du gelogen. bin wohl zu gutmütig


----------



## chuckleberrie (14. Mrz 2005)

alsi ich muss schon nen Keller programmieren, auch wenn das mit dem StringBuffer sich ziemlich einfach anhört. Ich muss nämlich den Keller von Delphi(schon fertig) mit dem von Java vergleichen.
@ ugh_bough 
    is das jetzt nen keller, oder die sache mit dem stringbuffer

Also mein konkretes Problem ist Genau die sache mit dem Keller, in Delphi ist das für mich kein problem, aber in Java bin ich noch nicht soo fit...


----------



## Beni (14. Mrz 2005)

Wieso selbst machen, wenns das schon gibt? java.util.Stack (auch wenn das nicht dieser grässlich eingedeutschte Begriff ist :wink: )


----------



## chuckleberrie (14. Mrz 2005)

Ach, das ist ja praktisch!!! Nur eine frage hab ich noch...Wie kann ich das denn jetzt in mein programm einbinden? und Muss ich einfach push und dann den namen meines textfeldes? Es bleibt ja immernoch das problem dass man nur jede zweite zeile umkehren soll.... :cry:


----------



## Beni (14. Mrz 2005)

Du musst eher jede zweite Zeile in den Stack pushen. Und wenn du das getan hast, kriegst du sie in der umgekehrten Reihenfolge mit pop wieder raus.

P.S. das geht aber erst ab Java 1.5!


----------



## mic_checker (14. Mrz 2005)

ugh_bough hat gesagt.:
			
		

> @ mic_checker sorry jetzt hast du gelogen. bin wohl zu gutmütig


Hä?


```
String original = "123456789";
		StringBuffer strbuf = new StringBuffer(original);
		strbuf.reverse();
		System.out.println(strbuf);
```

Ausgabe:
987654321

Oder was geht?


----------



## Sky (14. Mrz 2005)

Beni hat gesagt.:
			
		

> Du musst eher jede zweite Zeile in den Stack pushen. Und wenn du das getan hast, kriegst du sie in der umgekehrten Reihenfolge mit pop wieder raus.
> 
> P.S. das geht aber erst ab Java 1.5!



Was geht daran erst ab 1.5??? Stack mit push und pop gibt's doch schon ewig...


----------



## Beni (14. Mrz 2005)

Oops, stimmt. Hab Stack und Queue (die ist wirklich neu) durcheinandergebracht.


----------



## chuckleberrie (14. Mrz 2005)

warum kann der kompiler den code nicht kompilieren????


```
import java.applet.*; 
import java.awt.*; 

public class bidi extends Applet 
{ 
  public JTextArea area1 = new JTextArea(); 

  public void init() 
  { 
    area1 = new JTextArea("area1");
    add(area1); 
  } 
}
```


----------



## mic_checker (14. Mrz 2005)

Normalerweise solltest du immer die Fehlermeldung mit posten.
In dem Fall aber wohl ganz einfach: Es kam wohl "cannot resolve symbol" oder?


```
import javax.swing.*;
```


----------



## chuckleberrie (14. Mrz 2005)

Ich bin dank eurer hilfe schon gut auf dem weg...Ich hab da aber trotzdem noch ne frage: Wie kann ich die JTextArea felder breiter machen und nach unten hin limitieren??? Außerdem hab ich mir eine Batch datei erstellt, dass ich einfacher kompilieren kann, doch das dos fenster bleibt nicht offen, obwohl ich kein cls in der datei hab ???:L


----------



## mic_checker (15. Mrz 2005)

chuckleberrie hat gesagt.:
			
		

> Ich bin dank eurer hilfe schon gut auf dem weg...Ich hab da aber trotzdem noch ne frage: Wie kann ich die JTextArea felder breiter machen und nach unten hin limitieren???


http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTextArea.html



> Außerdem hab ich mir eine Batch datei erstellt, dass ich einfacher kompilieren kann, doch das dos fenster bleibt nicht offen, obwohl ich kein cls in der datei hab ???:L


Kompiliert er denn deine Dateien korrekt? Also wird die Datei korrekt abgearbeitet?

Btw. Denk dran:



> Löscht den Bildschirminhalt.
> 
> CLS


Hat also nichts mit dem schließen zu tun.


----------



## chuckleberrie (15. Mrz 2005)

da bin ich wieder  :?  ICh hab jetzt mein Applet so weit feritg, aber so recht will es noch nicht funktionieren... Der compiler meckert mal wieder :noe:  also das ist mein applet


```
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*; 

public class bidi extends Applet implements KeyListener
{ 
  public JTextArea eingang, ausgang = new JTextArea(); 
         JButton    drucken;
  

   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue);
    eingang = new JTextArea("eingang");
    ausgang = new JTextArea("ausgang");
    drucken = new JButton   ("drucken");
    drucken.addActionListener(this); 
    add(eingang, BorderLayout.WEST);
    add(ausgang, BorderLayout.EAST);
    add(drucken, BorderLayout.SOUTH); 
    }


eingang.addKeyListener(new KeyAdapter()
{
   public void keyTyped(KeyEvent e)
   {
     public void actionPerformed(ActionEvent evt) {
     
          int lines = eingang.getLineCount();
     
          String newtext= "";

          for (int i = 0; i < lines; i++)
          {
              int anf = getLineStartOffset(i); 
              int end = getLineEndOffset(i);
              int length = end - anf + 1;
             
              String zeile = eingang.gettext(anf, length);

              if (i % 2 == 1)
              {
                 newText += drehrum(zeile);
              }
              else
                 newText += zeile;
          }
          
          ausgang.setText(newText);
    }


    private String drehrum(string zeile)
    {
         String retZeil = "";

         for (int i = zeile.length() -1; i >= 0; i--)
              retTeile += zeile.charAt(i);
         
         return retZeile; 
    }
});
}
```

da ich leider aber nicht sehen kann worüber der Compiler meckert, weil das Dos Fenster sofort wieder schließt, hoff ich dass einer von euch trotzdem damit etwas anfangen kann :lol:


----------



## chuckleberrie (15. Mrz 2005)

hab doch die Fehlermeldungen des Compilers rauslesen können: Es sind 5 an der Zahl:



F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:28: <identifier> expected
eingang.addKeyListener(new KeyAdapter()
                      ^
bidi.java:67: ';' expected
}
 ^
bidi.java:28: cannot resolve symbol
symbol  : class addKeyListener
location: package eingang
eingang.addKeyListener(new KeyAdapter()
       ^
bidi.java:8: bidi should be declared abstract; it does not define keyTyped(java.
awt.event.KeyEvent) in bidi
public class bidi extends Applet implements KeyListener
       ^
bidi.java:21: addActionListener(java.awt.event.ActionListener) in javax.swing.Ab
stractButton cannot be applied to (bidi)
    drucken.addActionListener(this);
           ^
5 errors


 :?


----------



## mic_checker (15. Mrz 2005)

1) Warum verwendest du drehrum() ? Hab doch gesagt es gibt reverse() in StringBuffer....aber egal
2) Verwendest du keine IDE? Dann starte die Konsole so, geh in das entsprechende Verzeichnis und kompiliere es , dann siehst du auch die Fehlermeldungen


```
private String drehrum(string zeile)
```
Es heisst String.


```
public void keyTyped(KeyEvent e)
   {
     public void actionPerformed(ActionEvent evt) {
```
Was denn jetzt? Willst du keyTyped implementieren für den KeyListener oder willst du nen ActionListener und dafür actionPerformed? Das actionPerformed muss raus....


```
int anf = getLineStartOffset(i);
              int end = getLineEndOffset(i);
```
getLineStartOffset und getLineEndOffset sind Methoden von JTextArea , somit musst du sie entsprechend aufrufen.


```
String zeile = eingang.gettext(anf, length);
```
Es heisst getText() , nicht gettext() !

Hast du mal die API gelesen - da ist noch mehr das nicht passt , hab jetzt aber keine lust mehr


----------



## chuckleberrie (15. Mrz 2005)

sooooo, hab nochmal dran rumgewerkelt, ich krieg aber trotzdem 2 Fehler einfach nicht raus, hier nochmal das Applet:


```
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*; 

public class bidi extends Applet implements KeyListener
{ 
  public JTextArea eingang, ausgang = new JTextArea(); 
         JButton    drucken;
  

   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue);
    eingang = new JTextArea("eingang");
    ausgang = new JTextArea("ausgang");
    drucken = new JButton   ("drucken");
    eingang.addKeyListener(this); 
    add(eingang, BorderLayout.WEST);
    add(ausgang, BorderLayout.EAST);
    add(drucken, BorderLayout.SOUTH); 
    }


   public void eingang addKeyListener(new KeyAdapter()
{
   public void keyTyped(KeyEvent e)
   {
          int lines = eingang.getLineCount();
     
          String newtext= "";

          for (int i = 0; i < lines; i++)
          {
              int anf = eingang.getLineStartOffset(i); 
              int end = eingang.getLineEndOffset(i);
              int length = end - anf + 1;
             
              String zeile = eingang.getText(anf, length);

              if (i % 2 == 1)
              {
                 newText += drehrum(zeile);
              }
              else
                 newText += zeile;
          }
          
          ausgang.setText(newText);
    }
})

    private String drehrum(String zeile)
    {
         String retZeil = "";

         for (int i = zeile.length() -1; i >= 0; i--)
              retTeile += zeile.charAt(i);
         
         return retZeile; 
    };
    
    
}
```


und die Fehlermeldungen:



F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:28: '(' expected
   public void eingang addKeyListener(new KeyAdapter()
                       ^
bidi.java:8: bidi should be declared abstract; it does not define keyTyped(java.
awt.event.KeyEvent) in bidi
public class bidi extends Applet implements KeyListener
       ^
2 errors


Ich hoffe irgendjemand hat noch lust mir weiter zu helfen...

 :?


----------



## Beni (15. Mrz 2005)

Was soll das darstellen?

```
public void eingang addKeyListener(new KeyAdapter()
```

Wenn schon

```
public void eingang(){
  addKeyListener( new KeyAdapter(){ ... });
}
```


----------



## mic_checker (15. Mrz 2005)

Dein Problem ist das du KeyListener implementierst, d.h. er will das du alle Methoden aus dem Interface implementierst.
Alternativ könntest du es so machen wie du es auch drin hast: über ne anonyme Klasse. 

Also implementier entweder alle und du kannst implements KeyListener drin lassen oder schmeiss es raus und regel das ganze z.B. über anonyme Klassen.


----------



## chuckleberrie (15. Mrz 2005)

Wie mach ich das denn über anonyme Klassen???


----------



## mic_checker (15. Mrz 2005)

Hat Beni doch schon gepostet, eigentlich hast du es auch schon oben verwendet (ohne es wohl zu wissen) - allerdings musstest du es noch wie von Beni gezeigt in ne Methode packen.


----------



## chuckleberrie (15. Mrz 2005)

hmmmm, komischerweise hat der kompiler, wenn ich das so mache wie der beni das gepostet hat, plötzlich probleme, wo er sich davor nicht hatte:


```
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*; 

public class bidi extends Applet 
{ 
  public JTextArea eingang, ausgang = new JTextArea(); 
         JButton    drucken;
  

   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue);
    eingang = new JTextArea("eingang");
    ausgang = new JTextArea("ausgang");
    drucken = new JButton   ("drucken"); 
    add(eingang, BorderLayout.WEST);
    add(ausgang, BorderLayout.EAST);
    add(drucken, BorderLayout.SOUTH); 
    }


   public void eingang(){ 

   addKeyListener(new KeyAdapter()

{
   public void keyTyped(KeyEvent e)
   {
          int lines = eingang.getLineCount();
     
          String newtext= "";

          for (int i = 0; i < lines; i++)
          {
              int anf = eingang.getLineStartOffset(i); 
              int end = eingang.getLineEndOffset(i);
              int length = end - anf + 1;
             
              String zeile = eingang.getText(anf, length);

              if (i % 2 == 1)
              {
                 newText += drehrum(zeile);
              }
              else
                 newText += zeile;
          }
          
          ausgang.setText(newText);
    }
});
}


    private String drehrum(String zeile)
    {
         String retZeil = "";

         for (int i = zeile.length() -1; i >= 0; i--)
              retTeile += zeile.charAt(i);
         
         return retZeile; 
    };
    
    

}
```


er sacht dann:

F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:48: cannot resolve symbol
symbol: variable newText
                 newText += drehrum(zeile);
                 ^
bidi.java:51: cannot resolve symbol
symbol: variable newText
                 newText += zeile;
                 ^
bidi.java:54: cannot resolve symbol
symbol: variable newText
          ausgang.setText(newText);
                          ^
bidi.java:65: cannot resolve symbol
symbol  : variable retTeile
location: class bidi
              retTeile += zeile.charAt(i);
              ^
bidi.java:67: cannot resolve symbol
symbol  : variable retZeile
location: class bidi
         return retZeile;
                ^
5 errors


----------



## Wildcard (15. Mrz 2005)

```
String newtext= "";
```
Auf Groß/Kleinschreibung achten  :wink:


----------



## chuckleberrie (15. Mrz 2005)

LoL, ich sollte mir mal mehr zeit zum schreiben nehmen, vielleicht wprd ich dann auch nicht so viel falsch schreiben... Naja kurz nachdem ich alle diese fehler ausgemerzt hatte und mich chon gefreut hatte, tauchten aus heiterem himmel plötzlich 3 neue auf!!!!  :noe: 

also es handelt sich dabei um diese Zeilen 




```
for (int i = 0; i < lines; i++)
          {
              int anf = eingang.getLineStartOffset(i);                         // <---
              int end = eingang.getLineEndOffset(i);                         //<---
              int length = end - anf + 1;
             
              String zeile = eingang.getText(anf, length);                 //<----
```

und der sacht mir dass 


F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:40: unreported exception javax.swing.text.BadLocationException; must b
e caught or declared to be thrown
              int anf = eingang.getLineStartOffset(i);
                               ^
bidi.java:41: unreported exception javax.swing.text.BadLocationException; must b
e caught or declared to be thrown
              int end = eingang.getLineEndOffset(i);
                               ^
bidi.java:44: unreported exception javax.swing.text.BadLocationException; must b
e caught or declared to be thrown
              String zeile = eingang.getText(anf, length);
                                    ^
3 errors


 :roll:


----------



## mic_checker (15. Mrz 2005)

Du musst um diese Zeilen einen try...catch Block machen:


```
try {
//Deine Anweisungen
} catch (BadLocationException ble) {
ble.printStackTrace();
}
```


----------



## chuckleberrie (15. Mrz 2005)

um alle, oder um jede einzelnd?


----------



## mic_checker (15. Mrz 2005)

```
try { 
int anf = eingang.getLineStartOffset(i);                        
              int end = eingang.getLineEndOffset(i);                       
              int length = end - anf + 1; 
              
              String zeile = eingang.getText(anf, length);
} catch (BadLocationException ble) { 
ble.printStackTrace(); 
}
```


----------



## chuckleberrie (15. Mrz 2005)

F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:45: cannot resolve symbol
symbol: class BadLocationException
              } catch (BadLocationException ble) {
                       ^
bidi.java:51: cannot resolve symbol
symbol: variable zeile
                 newText += drehrum(zeile);
                                    ^
bidi.java:54: cannot resolve symbol
symbol: variable zeile
                 newText += zeile;
                            ^
3 errors



 :?:


```
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*; 

public class bidi extends Applet 
{ 
  public JTextArea eingang, ausgang = new JTextArea(); 
         JButton    drucken;
  

   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue);
    eingang = new JTextArea("eingang");
    ausgang = new JTextArea("ausgang");
    drucken = new JButton   ("drucken"); 
    add(eingang, BorderLayout.WEST);
    add(ausgang, BorderLayout.EAST);
    add(drucken, BorderLayout.SOUTH); 
    }


   public void eingang(){ 

   addKeyListener(new KeyAdapter()

{
   public void keyTyped(KeyEvent e)
   {
          int lines = eingang.getLineCount();
                      
          String newText= "";

          for (int i = 0; i < lines; i++)
           {  try {
              int anf = eingang.getLineStartOffset(i);                       
              int end = eingang.getLineEndOffset(i);                       
              int length = end - anf + 1;
             
              String zeile = eingang.getText(anf, length);
              } catch (BadLocationException ble) {
              ble.printStackTrace(); 
                  }

              if (i % 2 == 1)
              {
                 newText += drehrum(zeile);
              }
              else
                 newText += zeile;
          }
          
          ausgang.setText(newText);
    }
});
}


    private String drehrum(String zeile)
    {
         String retZeile = "";

         for (int i = zeile.length() -1; i >= 0; i--)
              retZeile += zeile.charAt(i);
         
         return retZeile; 
    };
    
    

}
```


----------



## Wildcard (15. Mrz 2005)

hast du keine IDE die deine Imports organsiert?

```
import javax.swing.text.BadLocationException;
```


----------



## chuckleberrie (15. Mrz 2005)

Ne


----------



## chuckleberrie (15. Mrz 2005)

bidi.java:51: cannot resolve symbol
symbol: variable zeile
newText += drehrum(zeile);
^
bidi.java:54: cannot resolve symbol
symbol: variable zeile
newText += zeile;
^ 

Die beiden Fehler bleiben, kann es sein dass die variable Zeile irgendwie Falsch deklariert ist...


----------



## Wildcard (15. Mrz 2005)

Du initialisierst zeile im try-Block. Wenn dieser beendet ist, gibt es die Variable auch nicht mehr.
Also weiter oben initialisieren!


----------



## chuckleberrie (15. Mrz 2005)

egal wo??? und initialisieren heißt doch dass ich schreibe "String Zeile;"


----------



## Wildcard (15. Mrz 2005)

```
for (int i = 0; i < lines; i++) 
           { 
              String zeile = null;   
              try { 
              int anf = eingang.getLineStartOffset(i);                        
              int end = eingang.getLineEndOffset(i);                        
              int length = end - anf + 1; 
              
              zeile = eingang.getText(anf, length); 
              } catch (BadLocationException ble) { 
              ble.printStackTrace(); 
                  } 

              if (i % 2 == 1) 
              { 
                 newText += drehrum(zeile); 
              } 
              else 
                 newText += zeile; 
          }
```
Keine Ahnung wie viele zeilen das bei dir sind, aber das += bei Strings ist der Performancekiller nummer 1!
Wenn es also mehr als 'ein paar' sind in jedem Fall StringBuffer verwenden!


----------



## chuckleberrie (15. Mrz 2005)

Juhuuuuuuuuuuuu, keine Fehler mehr im Programm. ABER es passier auch nix... LOL 



```
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*; 
import javax.swing.text.BadLocationException;

public class bidi extends Applet 
{ 
  public JTextArea eingang, ausgang = new JTextArea(); 
         JButton    drucken;
  

   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue);
    eingang = new JTextArea("eingang");
    ausgang = new JTextArea("ausgang");
    drucken = new JButton   ("drucken"); 
    add(eingang, BorderLayout.WEST);
    add(ausgang, BorderLayout.EAST);
    add(drucken, BorderLayout.SOUTH); 
    }


   public void eingang(){ 

   addKeyListener(new KeyAdapter()

{
   public void keyTyped(KeyEvent e)
   {
          int lines = eingang.getLineCount();
             
          String newText= "";

          for (int i = 0; i < lines; i++)
           {  
              String zeile = null;
              try {
              int anf = eingang.getLineStartOffset(i);                       
              int end = eingang.getLineEndOffset(i);                       
              int length = end - anf + 1;
             
              zeile = eingang.getText(anf, length);
              } catch (BadLocationException ble) {
              ble.printStackTrace(); 
                  }

              if (i % 2 == 1)
              {
                 newText += drehrum(zeile);
              }
              else
                 newText += zeile;
          }
          
          ausgang.setText(newText);
    }
});
}


    private String drehrum(String zeile)
    {
         String retZeile = "";

         for (int i = zeile.length() -1; i >= 0; i--)
              retZeile += zeile.charAt(i);
         
         return retZeile; 
    };
    
    

}
```


----------



## Wildcard (15. Mrz 2005)

Du hast ne Methode die genauso heißt wie ein JTextfield, die nie aufgerufen wird, und die einen KeyListener auf ein Applet legt? Muss man nicht verstehen, oder?  :autsch:


----------



## Roar (15. Mrz 2005)

Wildcard hat gesagt.:
			
		

> hast du keine IDE die deine Imports organsiert?
> 
> ```
> import javax.swing.text.BadLocationException;
> ```


wenn er eine hätte, dann wüsste er jetzt nichtmal was imports sind, also is das schon gut so...


----------



## Wildcard (15. Mrz 2005)

Naja, wenn man mit GUI's arbeitet sollte man sich das wohl schon langsam überlegen. 
Ich weiß auch nicht immer genau in welchem package welche Klasse ist... 
Aber das Thema hatten wir ja schon oft genug  :wink:


----------



## Guest (16. Mrz 2005)

Hi, ich hab an dem Programm wie es oben ist, noch nichts geänder(musste pennen gehn). Gibt es die Möglichkeit, die oben geschriebene Methode( die, die die zeilen von der eingangs  JTextarea in die ausgangs JTextarea schreibt und dabei jede zweite zeile umdreht) so in das applet zu schreiben, dass ich nurnoch meinen Button(drucken) drücken muss, damit das Applet die Methode ausführt. Denn so wie die Methode da jetzt steht, funktioniert se ja nicht...


----------



## Wildcard (16. Mrz 2005)

Wildcard hat gesagt.:
			
		

> Du hast ne Methode die genauso heißt wie ein JTextfield, die nie aufgerufen wird, und die einen KeyListener auf ein Applet legt? Muss man nicht verstehen, oder?  :autsch:


Erklär erstmal was du da eigentlich vorhast, der Code ist nämlich ziemlicher Käse, der kann nicht funktionieren!
Hast du das vorgehabt? (Reine Spekulation)

```
public class bidi extends Applet 
{ 
  public JTextArea eingang, ausgang = new JTextArea(); 
         JButton    drucken; 
  

   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue); 
    eingang = new JTextArea("eingang"); 
    eingang.addKeyListener(new KeyAdapter() 
{ 
   public void keyTyped(KeyEvent e) 
   { 
          int lines = eingang.getLineCount(); 
              
          String newText= ""; 

          for (int i = 0; i < lines; i++) 
           {  
              String zeile = null; 
              try { 
              int anf = eingang.getLineStartOffset(i);                        
              int end = eingang.getLineEndOffset(i);                        
              int length = end - anf + 1; 
              
              zeile = eingang.getText(anf, length); 
              } catch (BadLocationException ble) { 
              ble.printStackTrace(); 
                  } 

              if (i % 2 == 1) 
              { 
                 newText += drehrum(zeile); 
              } 
              else 
                 newText += zeile; 
          } 
          
          ausgang.setText(newText); 
    } 
}); 
    ausgang = new JTextArea("ausgang"); 
    drucken = new JButton   ("drucken"); 
    add(eingang, BorderLayout.WEST); 
    add(ausgang, BorderLayout.EAST); 
    add(drucken, BorderLayout.SOUTH); 
    } 

    private String drehrum(String zeile) 
    { 
         String retZeile = ""; 

         for (int i = zeile.length() -1; i >= 0; i--) 
              retZeile += zeile.charAt(i); 
          
         return retZeile; 
    }; 
}
```


----------



## Guest (16. Mrz 2005)

Also, ich hatte Vorgehabt, durch drücken den buttons drucken, denText, der In JTextarea eingang steht zu der JTextarea ausgang zu kopieren, und dabei jede zweite zeile umzudrehen, dh. falschrum wiederzugeben...Dann hat man mir ein bis zwie seite vorher das mit dem keylistener angeboten und ich habs ausprobiert, funkt aber net... :roll:


----------



## mic_checker (16. Mrz 2005)

Ich würde dir erstmal empfehlen nicht direkt beim kleinsten Fehler hier alles zu posten - beschäftige dich selbst mit den Problemen, v.a. wo sie teils so offensichtlich sind.

Wenn du dann nicht weiterkommst, kannst es immer noch posten.

Mit "kopieren" meinst du anhängen oder was? Also das der Text aus eingang an den von ausgang angehangen wird, wobei jede zweite Zeile von eingang umgedreht in ausgang erscheint?

Wenn du den Button "drucken" hast - warum nicht einfach ActionListener dazu hinzufügen und dann enstprechend weitermachen?

Die Methode zum umgedrehten ausgeben hast du ja (bzw. es wurden auch alternativen gepostet)...wo liegt jetzt noch das Prob?


----------



## Guest (16. Mrz 2005)

mit kopieren mein ich, den text, der in dem eingangs JTextarea steht komplett zu übernehmen(außer halt das mit dem jede zweite zeile umgedreht)...


----------



## mic_checker (16. Mrz 2005)

Also ausgang ist anfangs leer - du drückst auf drucken, dann übernimmt er den Text (je zweite Zeile umgekehrt) - wo ist noch das Problem?

WIe man nem Button nen ActionListener hinzufügt etc. weisst du?


----------



## Guest (16. Mrz 2005)

wenn ichs wüsste, würd ich ja nicht fragen...


----------



## mic_checker (16. Mrz 2005)

```
class DruckeLauscher implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
....
}
}

// weiterer Code

DeinButton.addActionListener(new DruckeLauscher());
```

Oder über anonyme Klassen, das geht analog wie oben...


----------



## Guest (16. Mrz 2005)

kann ich nicht auch meine klasse benutzen und trotzdem das Interface ActionListener  benutzen?


----------



## mic_checker (16. Mrz 2005)

Wenn deine Klasse ActionListener implementiert musst du dran denken actionPerformed(ActionEvent evt) zu implementieren.

Oder du machst das ganze über anonyme Klasse - wie oben gezeigt.


----------



## chuckleberrie (16. Mrz 2005)

so in etwa??? 


```
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*; 
import javax.swing.text.BadLocationException;
   
  public class bidi extends Applet implements ActionListener 
{
  public JTextArea eingang, ausgang = new JTextArea();
         JButton    drucken;
 

   public void init()
    {
    setLayout(new BorderLayout());
    setBackground(Color.blue);
    ausgang = new JTextArea("ausgang");
    drucken = new JButton   ("drucken");
    add(eingang, BorderLayout.WEST);
    add(ausgang, BorderLayout.EAST);
    add(drucken, BorderLayout.SOUTH);
    eingang = new JTextArea("eingang");

    eingang.addActionListener(this) ;
   }

   
   public void actionPerformed(ActionEvent e)
   {
          int lines = eingang.getLineCount();
             
          String newText= "";

          for (int i = 0; i < lines; i++)
           { 
              String zeile = null;
              try {
              int anf = eingang.getLineStartOffset(i);                       
              int end = eingang.getLineEndOffset(i);                       
              int length = end - anf + 1;
             
              zeile = eingang.getText(anf, length);
              } catch (BadLocationException ble) {
              ble.printStackTrace();
                  }

              if (i % 2 == 1)
              {
                 newText += drehrum(zeile);
              }
              else
                 newText += zeile;
          }
         
          ausgang.setText(newText);
    }
};
    
    
    private drehrum(String zeile)
    {
         String retZeile = "";

         for (int i = zeile.length() -1; i >= 0; i--)
              retZeile += zeile.charAt(i);
         
         return retZeile;
    };
}
```


----------



## bambi (16. Mrz 2005)

Kann es sein, dass Du da ein paar Klammern umsetzen musst?
Ausserdem muss Deine Methode drehrum() auch noch was zurueckgeben...

```
private String drehrum(String zeile)
{  ...
    return retZeile;
};
```


----------



## chuckleberrie (16. Mrz 2005)

da sind doch klammern drum... oder wo meinst du jetzt?


----------



## bambi (17. Mrz 2005)

1. Schau Dir auf jeden Fall mal Deine Klammern an. Bin nicht sicher, ob da ein Fehler drin ist.
2. Es muss auf jeden Fall

```
private String drehrum(String zeile)
```
  heissen, denn Du gibst ja einen String zurueck

3.  Meinst Du nicht eher

```
drucken.addActionListener(this) ;
```
  ,denn fuer JTextArea ist die Methode nicht definiert.


----------



## mic_checker (17. Mrz 2005)

Das ist aber dann nicht der Ansatz über anonyme Klassen - der sähe so aus:


```
drucken.addActionListener(new ActionListener() {
	       	public void actionPerformed(ActionEvent ae){
			       //...
			   }
			 });
```


----------



## chuckleberrie (17. Mrz 2005)

Hi, da bin ich wieder. ich hab ne ganze zeit jetzt an meinem Programm gesessen, krich 4 fehler aber einfach nichr raus, weil ich nicht weiß, was der compiler von mir will... :bahnhof:  
Kann mir vielleicht jemand nochmal helfen?


```
import java.awt.Button;
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*; 
import javax.swing.text.BadLocationException;
   
  public class bidi extends Applet implements ActionListener 
{
  public JTextArea eingang, ausgang = new JTextArea();
         JButton    drucken;
 

   public void init()
    {
    setLayout(new BorderLayout());
    setBackground(Color.blue);
    ausgang = new JTextArea("ausgang");
    drucken = new JButton   ("drucken");
    add(eingang, BorderLayout.WEST);
    add(ausgang, BorderLayout.EAST);
    add(drucken, BorderLayout.SOUTH);
    eingang = new JTextArea("eingang");
    drucken.addActionListener(this) ;
   }

   
   public void actionPerformed(ActionEvent e)
   {
          int lines = eingang.getLineCount();
             
          String newText= "";

          for (int i = 0; i < lines; i++)
           { 
              String zeile = null;
              try {
              int anf = eingang.getLineStartOffset(i);                       
              int end = eingang.getLineEndOffset(i);                       
              int length = end - anf + 1;
             
              zeile = eingang.getText(anf, length);
              } catch (BadLocationException ble) {
              ble.printStackTrace();
                  }

              if (i % 2 == 1)
              {
                 newText += drehrum(zeile);
              }
              else
                 newText += zeile;
          }
         
          ausgang.setText(newText);
    }
};
    
    
    private string drehrum(String zeile)
    {
         String retZeile = "";

         for (int i = zeile.length() -1; i >= 0; i--)
              {retZeile += zeile.charAt(i);}
         
         return retZeile;
    };
}
```

und die Fehlermeldungen

F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:62: 'class' or 'interface' expected
    private string drehrum(String zeile)
            ^
bidi.java:71: 'class' or 'interface' expected
}
^
bidi.java:71: 'class' or 'interface' expected
}
 ^
bidi.java:51: cannot resolve symbol
symbol  : method drehrum  (java.lang.String)
location: class bidi
                 newText += drehrum(zeile);
                            ^
4 errors[/quote]


----------



## Wildcard (17. Mrz 2005)

chuckleberrie hat gesagt.:
			
		

> Hi, da bin ich wieder. ich hab ne ganze zeit jetzt an meinem Programm gesessen, krich 4 fehler aber einfach nichr raus


Na dann hast du wohl ganz genau hingesehen! String schreibt man groß und du hast ne Klammer zuviel! Die Fehlermeldungen sind doch verständlich  :autsch:


----------



## chuckleberrie (17. Mrz 2005)

lol
das mit der Klammer stimmt, aber die anderen beiden fehler sind immernochnicht beseitigt, es lag ausl nicht an der kleinschreibung...


F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:62: 'class' or 'interface' expected
private string drehrum(String zeile)


 bidi.java:51: cannot resolve symbol
symbol : method drehrum (java.lang.String)
location: class bidi
newText += drehrum(zeile);


----------



## Wildcard (17. Mrz 2005)

Es lag an der Kleinschreibung die du immer noch hast! LES DOCH DIE FEHLERMELDUNG!!!


----------



## chuckleberrie (17. Mrz 2005)

ich hab auch nur die fehlermeldungen aus dem alten posting genommen. Hier die aktuellen fehlermeldungen:


F:\Java\Bidirektionaler Drucker>"C:\jdk\bin\javac" *.java
bidi.java:62: 'class' or 'interface' expected
    private String drehrum(String zeile)
            ^
bidi.java:51: cannot resolve symbol
symbol  : method drehrum  (java.lang.String)
location: class bidi
                 newText += drehrum(zeile);
                            ^
2 errors


----------



## Wildcard (17. Mrz 2005)

So! Hab mir deinen Quelltext eben kopiert, in Eclipse eingefügt, die Klammer mit dem Strichpunkt entfernt und den String richtig geschrieben. Es geht!  :roll:


----------



## chuckleberrie (17. Mrz 2005)

hmmmmm
bei mir komischerweise nicht


----------



## Wildcard (17. Mrz 2005)

AHHHHHHHH!

```
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;
    
  public class bidi extends Applet implements ActionListener 
{ 
  public JTextArea eingang, ausgang = new JTextArea(); 
         JButton    drucken; 


   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue); 
    ausgang = new JTextArea("ausgang"); 
    drucken = new JButton   ("drucken"); 
    add(eingang, BorderLayout.WEST); 
    add(ausgang, BorderLayout.EAST); 
    add(drucken, BorderLayout.SOUTH); 
    eingang = new JTextArea("eingang"); 
    drucken.addActionListener(this) ; 
   } 

    
   public void actionPerformed(ActionEvent e) 
   { 
          int lines = eingang.getLineCount(); 
              
          String newText= ""; 

          for (int i = 0; i < lines; i++) 
           { 
              String zeile = null; 
              try { 
              int anf = eingang.getLineStartOffset(i);                        
              int end = eingang.getLineEndOffset(i);                        
              int length = end - anf + 1; 
              
              zeile = eingang.getText(anf, length); 
              } catch (BadLocationException ble) { 
              ble.printStackTrace(); 
                  } 

              if (i % 2 == 1) 
              { 
                 newText += drehrum(zeile); 
              } 
              else 
                 newText += zeile; 
          } 
          
          ausgang.setText(newText); 
    } 
    
    
    private String drehrum(String zeile) 
    { 
         String retZeile = ""; 

         for (int i = zeile.length() -1; i >= 0; i--) 
              {retZeile += zeile.charAt(i);} 
          
         return retZeile; 
    } 
}
```


----------



## chuckleberrie (17. Mrz 2005)

hmmmm, jetzt kompiliert er es auch, aber komischerweise läd mein browser das Applet nicht...


----------



## Wildcard (17. Mrz 2005)

Können wir den Thread nicht langsam abschließen?   

```
public JTextArea eingang= new JTextArea(), ausgang = new JTextArea(); 
         JButton    drucken;
```


----------



## chuckleberrie (17. Mrz 2005)

Erst wenn das programm funtioniert   

Also jetzt Läuft das applet zwar, doch wenn ich auf den button drücke, kommt in der ausgangszeile bloß null an. Kann es sein, dass das mit diesem Try zusammenhängt??


----------



## Wildcard (17. Mrz 2005)

blubb....   
btw: ich dachte ich hätte irgendwann vor tausenden von Seiten gelesen du willst jede 2. Zeile vertauschen?
das funktioniert aber noch nicht   


```
public JTextArea eingang= new JTextArea("eingang"), ausgang = new JTextArea("audgang"); 
         JButton    drucken; 


   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue); 
    //ausgang = new JTextArea("ausgang"); 
    drucken = new JButton   ("drucken"); 
    add(eingang, BorderLayout.WEST); 
    add(ausgang, BorderLayout.EAST); 
    add(drucken, BorderLayout.SOUTH); 
    //eingang = new JTextArea("eingang"); 
    drucken.addActionListener(this) ; 
   }
```


----------



## chuckleberrie (17. Mrz 2005)

genau das ist ja das problem...
und BTW: Ich muss die Facharbeit morgen abgeben, also ist guter rat teuer  :bahnhof:


----------



## mic_checker (17. Mrz 2005)

1) Empfehlung von meiner Seite aus: Wenn der Compiler was meldet: Nicht direkt die Forum-Seite öffnen und "Neue Antwort erstellen" drücken, sondern erstmal *lesen* und versuchen selber das Problem zu lösen.

2) Wie wäre es mal wenn du einen Ansatz posten würdest zu dem Problem? hast du ne Ahnung wie man rangehen könnte etc. ?


----------



## chuckleberrie (17. Mrz 2005)

also der Compiler Meldet ja noch nichtmal was, das Programm machtr bloß nicht das, was ich von ihm will.

Wenn ich mir das programm anschaue, versteh ich ja auch was in den einzelnen zeilen passiert, bloß mit dieser try anweisung komm ich net klar, die kenn ich nämlich nicht. Deswegen hatte ich gefragt, ob das was mit dem try zu tun haben könnte.


----------



## Wildcard (17. Mrz 2005)

Weil ich so ein guter Mensch bin und du morgen abgabe hast:

```
public void actionPerformed(ActionEvent e) 
   { 

       Pattern pat = Pattern.compile("(.*)([\\n\\r]+)");
       Matcher mat = pat.matcher(eingang.getText()+System.getProperty("line.separator"));
       boolean reverse = false;
       StringBuffer textBuffer = new StringBuffer();
       while(mat.find())
       {
           if (reverse)
           {
               StringBuffer reverseBuffer=new StringBuffer(mat.group(1));
               reverseBuffer.reverse();
               textBuffer.append(reverseBuffer+System.getProperty("line.separator"));
               reverse=false;
           }
           else
           {
               textBuffer.append(mat.group(1)+System.getProperty("line.separator"));
               reverse=true;
           }
       }
       ausgang.setText(textBuffer.toString());
    }
```


----------



## chuckleberrie (17. Mrz 2005)

Da steht jetzt noch als fehlermeldung 3 mal cannot resolve symbol. Das heißt doch, dass eine Klasse nicht angegeben ist, oder???


----------



## Wildcard (17. Mrz 2005)

importieren:

```
import java.util.regex.Matcher;
import java.util.regex.Pattern;
```


----------



## chuckleberrie (17. Mrz 2005)

der sacht mir, dass es die pakete nicht gibt....


----------



## Wildcard (17. Mrz 2005)

Wer sagt dir das? Welche Java Version hast du?


----------



## chuckleberrie (17. Mrz 2005)

is diese version hier: 


                      Java(TM) 2 SDK, Standard Edition
                                Version 1.3.1


----------



## Wildcard (17. Mrz 2005)

Dann gibts die Packages!


----------



## Wildcard (17. Mrz 2005)

Mach es das nächste mal bitte kenntlich wenn du einen Beitrag editierst.
In 1.3 gibt's kein RegEx. Entweder Updaten oder anders machen.


----------



## chuckleberrie (17. Mrz 2005)

wie update ich denn? muss ich dafür nen ganz neues SDK runterladen?


EDIT: und welches nehm ich dann? Das 5.0 oder das 1.4.2?


----------



## Wildcard (17. Mrz 2005)

Ja!
Bei 1.3 wird's aber auch langsam mal Zeit! Wir sind bei Java5   
Dein konkretes Problem kannst du aber natürlich auch ohne RegEx lösen. War ohnehin etwas Overhead, aber ich mag RegEx


----------



## chuckleberrie (17. Mrz 2005)

was ist denn regex?


----------



## Wildcard (17. Mrz 2005)

Das package das es in 1.3 nicht gibt und das du gerade benutzen wolltest  :autsch:


----------



## chuckleberrie (17. Mrz 2005)

ach ne?
Ich meinte eher, was regex macht


----------



## Wildcard (17. Mrz 2005)

Das hat nicht unbedingt was mit Java zu tun. RegEx steht für RegularExpressions(Reguläre Ausdrücke schau unter Wikipedia nach)
Hier noch eine Version ohne RegEx:

```
public void actionPerformed(ActionEvent e) 
   { 
       StringBuffer text = new StringBuffer();
       int offset = 0;
       
       for (int i=0;i<eingang.getLineCount();i++)
       {
           try
           {
               if (i%2==0)
               {
                   text.append(eingang.getText().substring(offset,eingang.getLineEndOffset(i)));

               }
               else
               {
                   StringBuffer reverse = new StringBuffer(eingang.getText().substring(offset,eingang.getLineEndOffset(i)-1));
                   reverse.reverse();
                   text.append(reverse+System.getProperty("line.separator"));
               }
               offset=eingang.getLineEndOffset(i);
               
           }
           catch(BadLocationException ex)
           {
               ex.printStackTrace();
           }
           ausgang.setText(text.toString());
       }
   }
```


----------



## chuckleberrie (17. Mrz 2005)

Das is wirklich sehr nett von dir, aber es funktioniert immer noch nicht...


----------



## Wildcard (17. Mrz 2005)

Bei mir schon.
Insofern währe es ganz hilfreich wenn du sagst was nicht funktioniert...  :roll:


----------



## chuckleberrie (17. Mrz 2005)

also wenn man bei mir links einen Text eingibt und dann auf denn button drückt, steht rechts nur eingang


----------



## Wildcard (17. Mrz 2005)

Das 'Eingang' wird natürlich mitkopiert. Ist ja Teil der TextArea. Hast du auch Zeilenumbrüche gemacht?
Das muss gehen!


----------



## chuckleberrie (17. Mrz 2005)

ich habe einen ganz normalen text geschrieben in dem ich nach jeder zeile Enter gedrückt hab un in die neue zeile zu gelangen


----------



## Wildcard (17. Mrz 2005)

Übernimm das mal komplett so und sag mir nochmal das es nicht funktioniert! Das kann nicht sein! Keine Fehlermeldung, kein nichts???

```
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;
    
  public class bidi extends Applet implements ActionListener 
{ 
  public JTextArea eingang= new JTextArea("eingang"), ausgang = new JTextArea("audgang"); 
         JButton    drucken; 


   public void init() 
    { 
    setLayout(new BorderLayout()); 
    setBackground(Color.blue); 
    drucken = new JButton   ("drucken"); 
    add(eingang, BorderLayout.WEST); 
    add(ausgang, BorderLayout.EAST); 
    add(drucken, BorderLayout.SOUTH); 

    drucken.addActionListener(this) ;     
   } 

    
   public void actionPerformed(ActionEvent e) 
   { 
       StringBuffer text = new StringBuffer();
       int offset = 0;
       
       for (int i=0;i<eingang.getLineCount();i++)
       {
           
           try
           {
               if (i%2==0)
               {
                   text.append(eingang.getText().substring(offset,eingang.getLineEndOffset(i)));

               }
               else
               {
                   StringBuffer reverse = new StringBuffer(eingang.getText().substring(offset,eingang.getLineEndOffset(i)-1));
                   reverse.reverse();
                   text.append(reverse+System.getProperty("line.separator"));
               }
               offset=eingang.getLineEndOffset(i);
               
           }
           catch(BadLocationException ex)
           {
               ex.printStackTrace();
           }
           ausgang.setText(text.toString());
       }
   }
}
```


----------



## chuckleberrie (17. Mrz 2005)

ES FUNKTIONIERT!!!!!!!!!!!!!!!!!!
Vielen Dank. Aber eine letzte frage hab ich noch! Wie kann ich die Jtextareas so umschreiben, dass sie breiter sind und dass ein zeilumsprung erfolgt, wenn man am ende der Zeile angekommen ist!


----------



## Wildcard (17. Mrz 2005)

chuckleberrie hat gesagt.:
			
		

> ES FUNKTIONIERT!!!!!!!!!!!!!!!!!!


Dazu muss ich jetzt nichts sagen, oder   


```
ausgang.setLineWrap(true);
ausgang.setPreferredSize(new Dimension(500,500));
```


----------



## chuckleberrie (17. Mrz 2005)

wenn man das in die init des Applet schreibt funktioniert das aber nicht...


----------



## Wildcard (17. Mrz 2005)

Das LineWrap musst du ja auch beim eingang machen! War doch nur ein Beispiel mit dem Ausgang!


----------



## chuckleberrie (17. Mrz 2005)

Ja das hab ich mir gedacht und hab beides auchnoch mal für eingang gemacht. Baer der sacht mir dass er Dimension nicht kennt und wenn ich nur die set.lineWrap anweisungen drinne lasse, sieht man meine Textfelder nichmehr


----------



## Wildcard (17. Mrz 2005)

chuckleberrie hat gesagt.:
			
		

> Baer der sacht mir dass er Dimension nicht kennt


Um Himmels willen! Was glaubst du für was die import statements sind? Wenn du nicht weißt in welchem Package eine Klasse ist und keine IDE benutzt die das für dich macht, dann schau eben in der API nach!

```
import java.awt.Dimension;
```


----------



## chuckleberrie (17. Mrz 2005)

Es ist vollbracht....Das hat mit sicherheit nichtnur mir viel schweiß gekostet   
aber eine bitte hab ich noch. Kann man den Treat irgendwie verschwinden lassen, wenn mein Infolehrer den findet bin ich ziemlich im Sack.
Also nochmal danke an alle :applaus:


----------



## Wildcard (17. Mrz 2005)

chuckleberrie hat gesagt.:
			
		

> Es ist vollbracht....Das hat mit sicherheit nichtnur mir viel schweiß gekostet
> aber eine bitte hab ich noch. Kann man den Treat irgendwie verschwinden lassen, wenn mein Infolehrer den findet bin ich ziemlich im Sack.
> Also nochmal danke an alle  :applaus:


[schild=4 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]lol[/schild]


----------

