# [TextArea] Text Formatieren



## phyrexianer (19. Feb 2005)

kann ich wenn ich eine eine Textarea habe, und zu dieser dann einen Text hinzufüge ihm vor dem hinzufügen sagen wie er mir den Text zu formatieren hat ??? zum Beispiel eine Farbe oder so oder Fett usw.     jeweils für den einzelen String der hinzugefügt wird ?

danke phyrexianer


----------



## mic_checker (19. Feb 2005)

Kommt drauf an wie du das meinst.

Wenn du einen Text hast, bestehend aus mehreren Strings, und du willst die Teilstrings unterschiedlich darstellen, so dass z.B. einige Sachen blau und fett erscheinen, die andern rot und kursiv, so geht das mit JTextArea afaik nicht. 
Siehe http://www.jforum.de/showthread.php?t=902

Wie ich dort auch schon geschrieben hab, sollte man für diese Zwecke z.B. JTextPane einsetzen.


----------



## foobar (19. Feb 2005)

<offtopic>Das Forum kannte ich noch gar nicht. Ist das neu?</offtopic>


----------



## mic_checker (19. Feb 2005)

Also hier nochma der Code, den ich auch da gepostet hab:


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;

public class JTextPaneTest extends JFrame {
	private JTextPane jtp;

	static SimpleAttributeSet BLUE = new SimpleAttributeSet();
	static SimpleAttributeSet DEFAULT = new SimpleAttributeSet();
	static SimpleAttributeSet INSERT = new SimpleAttributeSet();
	
	static {
    		StyleConstants.setForeground(BLUE, Color.blue);
    		StyleConstants.setFontFamily(BLUE, "Helvetica");
    		StyleConstants.setFontSize(BLUE, 12);

		   StyleConstants.setForeground(DEFAULT, Color.black);
    		StyleConstants.setFontFamily(DEFAULT, "Helvetica");
    		StyleConstants.setFontSize(DEFAULT, 12);
		    
		   StyleConstants.setForeground(INSERT, Color.red);
    		StyleConstants.setFontFamily(INSERT, "Helvetica");
		   StyleConstants.setItalic(INSERT,true);
		   StyleConstants.setBold(INSERT,true);
    		StyleConstants.setFontSize(INSERT, 12);
	}	
	
	class WindowListener extends WindowAdapter {
		public void windowClosing(WindowEvent event) {         
         dispose();         
         System.exit(0);
      }
   }
	
	public JTextPaneTest() {
   	super("JTextPane - Test");
    	   	
    	jtp = new JTextPane();
		
		getContentPane().add(jtp);
		
		appendText("Dies soll in blau angezeigt werden\n",BLUE);
		appendText("Dies soll mit der Standard-Einstellung angezeigt werden\n",DEFAULT);
		insertText("Füge das an Stelle 15 ein",INSERT,15);
		
		addWindowListener(new WindowListener());
  	}
	
	protected void insertText(String text, AttributeSet set,int pos) {
    		try {			    
      			jtp.getDocument().insertString(pos, text, set);
			} catch (BadLocationException e) {
      		System.err.println("Bei dem Versuch einen Text in das JTextPane einzufügen ist eine Bad Location Exception aufgetreten");
         	System.exit(-1);
         }
  	}
	
   protected void appendText(String text, AttributeSet set) {
	   	insertText(text,set,jtp.getDocument().getLength());          
   } 
		

  	public static void main(String[] args) {
    	JTextPaneTest frame = new JTextPaneTest();
    	frame.setLocation(100, 100);
    	frame.setSize(300, 200);
    	frame.setVisible(true);
  	}
}
```



			
				foobar hat gesagt.:
			
		

> <offtopic>Das Forum kannte ich noch gar nicht. Ist das neu?</offtopic>


Kenn das Board erst seit ca. einem Monat, ka wie lang das schon existiert.


----------



## phyrexianer (19. Feb 2005)

vielen dank werde ich mal gleich ausprobieren ;-)


----------

