Advanced   Java   Services
JTextArea2
Back Next Up Home

append() und appendln()


Die folgende Klasse ergänzt JTextArea um einige nützliche Methoden, bzw. überschreibt sie. Es ist recht lästig, daß in JTextArea keine Methode zur Verfügung steht, die automatisch einen Zeilenumbruch macht, die neue Methode appendln() macht genau dieses. Des weiteren ist es nützlich die Methoden append() und appendln(), so zu überladen, daß sie für primitive Datentypen und für beliebige Objekte zur Verfügung stehen analog zu System.out.print() und System.out.println(). Diesen mangel behebt die Klasse JTextArea2.

setCaretPosition(-1)


verwendet man eine JTextArea in einer JScrollpane, was eigentlich der Normalfall ist, so wird nach einer Texteinfügung mit append() nicht automatisch zum Textende gescrollt, man kann dies aber mit einem zusätzlichen Aufruf von setCaretPostion( getText().length() - 1) erreichen. Für negative Argumente wirft die ursprüngliche Methode eine IllegalArgumentException. Hier wird die Methode so überschrieben, daß ein Aufruf für negative Argumente ein Positionierung des Textcursors ans Textende zur Folge hat.

Konstruktoren


Um die Klasse bequem verwenden zu können, hat sie die gleiche Konstruktorausstattung wie JTextArea.

Quellcode der Klasse JTextArea2


import javax.swing.* ;
import javax.swing.text.* ;


public class JTextArea2 extends JTextArea
{
   public JTextArea2()
   {
      super();
   }
   public JTextArea2(Document doc)
   {
      super(doc);
   }
   public JTextArea2(Document doc, String text, int rows, int cols)
   {
      super(doc, text, rows, cols);
   }
   public JTextArea2(int rows, int cols)
   {
      super(rows, cols);
   }
   public JTextArea2(String text)
   {
      super(text);
   }
   public JTextArea2(String text, int rows, int cols)
   {
      super(text, rows, cols);
   }

   public void append(Object o)
   {
      super.append( o.toString() ) ;
   }
   public void append(double d)
   {
      super.append(""+d) ;
   }
   public void append(long l)
   {
      super.append(""+l) ;
   }


   public void appendln(Object ob)
   {
      super.append( ob + "\n") ;
   }
   public void appendln(double d)
   {
      super.append(d + "\n") ;
   }
   public void appendln(long l)
   {
      super.append(l + "\n") ;
   }

   public void setCaretPosition(int pos)
   {
      if (pos>-1)
         super.setCaretPosition(pos);
      else
         super.setCaretPosition( getText().length() -1 ) ;
   }

} // end class JTextArea2

top Back Next Up Home