To get a color text on the TextArea

ehmaster

Mitglied
Hello dear Java community,


i have a little problem again. So i have simply actionperformed for my buttons and want to write text on the TextArea which i have in my Java swing App. It is working but when i want to get some parts of my text a color then this color code do not works.
Please if someone knows how to solve this problem i will be very grateful.:-(




Thanks!!!!




Java:
addBt.addActionListener(new ActionListener() {


			@Override
			public void actionPerformed(ActionEvent arg0) {
				
				
				
				
				


				String text = "\t" + "Information " + " \n" + "Password is: "
						+ " " + "" + "5555" + "    " + "/   " + "Username is:"
						+ " " + " " + "ehmaster" + "" + "\n";


				fireDetailEvent(new DetailEvent(this, text));


			}


		});
 

ehmaster

Mitglied
Danke Klaus!!!!!
i deleted because of it was not working. I read how to get color when you have actionperformed. I have JTextPane but i do not know how to use it. For example how can i get color just on this text part not whole text which i have in this code. I think this code is solution for my problem but i do not know how to use it. If you know and have an idea please show me(((

Like this :

StyledDocument doc = textPane.getStyledDocument();SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setForeground(attrs, myColor);
doc
.setParagraphAttributes(0, doc.getLength(), attrs, false);
textPane
.setDocument(doc);
 

X5-599

Top Contributor
I've had some time and tried to create a simple way to use TextPane. I haven't tested it fully, though. So there could be some bugs. Anyway here it is:

Java:
import java.awt.Color;

import javax.swing.JTextPane;
import javax.swing.text.AttributeSet;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.StyledDocument;


public class JColoredTextPane extends JTextPane
{
	private static final long serialVersionUID = 4505277032433992163L;
	private static final String LINE_BREAK = "\n";
	private static final String SPACE = " ";
	
	private Color textColor;
	private boolean justColorize;
	
	public JColoredTextPane()
	{
		this(Color.BLACK);
	}
	
	public JColoredTextPane(Color textColor)
	{
		this.textColor = textColor;
		justColorize = false;
	}
	
	
	public void setTextColor(Color textColor)
	{
		this.textColor = textColor;
	}
	
	public Color getTextColor()
	{
		return textColor;
	}
	
	
	public void append(String text)
	{
		append(text, textColor);
	}
	
	public void append(String text, Color color)
	{
		replace(text, 0, 0, color, true);
	}
	
	public void replace(String text, int start)
	{
		if(text == null)
			return;
		
		replace(text, start, textColor);
	}
	
	public void replace(String text, int start, Color color)
	{
		int end = start + text.length();
		replace(text, start, end, color);
	}
	
	public void replace(String text, int start, int end)
	{
		replace(text, start, end, textColor);
	}
	
	public void replace(String text, int start, int end, Color color)
	{
		replace(text, start, end, color, false);
	}
	
	private void replace(String text, int start, int end, Color color, boolean append)
	{
		justColorize = false;
		
		AttributeSet aset = getNewAttributeSet(color);
		
		if(append)
		{
			int len = getDocument().getLength();
			setCaretPosition(len);
		}
		else
		{
			setCaretPosition(start);
			moveCaretPosition(end);
		}
		
		setCharacterAttributes(aset, !append);
		replaceSelection(text);
	}
	
	public void colorize(int start, int end, Color newTextColor)
	{
		justColorize = true;
		
		AttributeSet aset = getNewAttributeSet(newTextColor);
		
		setCaretPosition(start);
		moveCaretPosition(end);
		setCharacterAttributes(aset, true);
		
		int len = getDocument().getLength();
		setCaretPosition(len);
	}
	
	public void appendLineBreak()
	{
		append(LINE_BREAK);
	}
	
	public void appendSpace()
	{
		append(SPACE);
	}
	
	
	@Override
	public void setCharacterAttributes(AttributeSet attr, boolean replace)
	{
		if(!justColorize)
		{
			MutableAttributeSet inputAttributes = getInputAttributes();
			if(replace)
			{
				inputAttributes.removeAttributes(inputAttributes);
			}
			inputAttributes.addAttributes(attr);
		}
		else
		{
			int p0 = getSelectionStart();
			int p1 = getSelectionEnd();
			StyledDocument doc = getStyledDocument();
			doc.setCharacterAttributes(p0, p1 - p0, attr, replace);
		}
	}
	
	private AttributeSet getNewAttributeSet(Color textColor)
	{
		StyleContext sc = StyleContext.getDefaultStyleContext();
		AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, textColor);
		
		aset = sc.addAttribute(aset, StyleConstants.FontFamily, "Lucida Console");
		aset = sc.addAttribute(aset, StyleConstants.Alignment, StyleConstants.ALIGN_JUSTIFIED);
		
		return aset;
	}
}

You can use it like this:
Java:
public static void main(String[] args)
{
	SwingUtilities.invokeLater(new Runnable() {
		
		@Override
		public void run()
		{
			JFrame frame = new JFrame("JColoredTextArea Frame");
			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			
			JPanel panel = new JPanel();
			
			//A few examples
			JColoredTextPane c = new JColoredTextPane();
			
			//You could just colorize certain characters
			c.append("Just some normal boring black text");
			c.appendLineBreak();
			c.append("And more in another line");
			c.appendLineBreak();
			
			c.colorize(1, 7, Color.MAGENTA);
			
			
			//Or you could add text in a specific color
			c.append("My Text Green", Color.GREEN);
			c.appendLineBreak();
			c.append("Some Orange Text", Color.ORANGE);
			c.appendSpace();
			c.append("Other Text Blue", Color.BLUE);
			c.appendLineBreak();
			
			
			//Or change the default text color
			c.setTextColor(Color.GRAY);
			
			c.append("From now on");
			c.appendLineBreak();
			c.append("every text is GRAY until");
			c.appendLineBreak();
			
			c.setTextColor(Color.GREEN);
			
			c.append("The default color");
			c.appendLineBreak();
			c.append("is changed again.");
			
			
			panel.add(c);
			frame.add(panel);
			
			frame.pack();
			frame.setLocationRelativeTo(null);
			frame.setVisible(true);
		}
	});
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E To get color text on the TextArea AWT, Swing, JavaFX & SWT 5
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
Juelin setzen background color für selected Row im Tableview AWT, Swing, JavaFX & SWT 21
D JUNG change color of an spceific AWT, Swing, JavaFX & SWT 4
R AWT Color von Point AWT, Swing, JavaFX & SWT 1
K Color-Objekt erzeugen in CMYK AWT, Swing, JavaFX & SWT 2
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
J JSlider Color Ticks AWT, Swing, JavaFX & SWT 1
Seikuassi SWING - (Hoffentlicher) simpler Color-Fehler AWT, Swing, JavaFX & SWT 4
F java.awt.Color AWT, Swing, JavaFX & SWT 8
S Rectangle Border Color AWT, Swing, JavaFX & SWT 13
K AWT Welche color benutzen? AWT, Swing, JavaFX & SWT 4
Y Globale Font-Color definieren AWT, Swing, JavaFX & SWT 5
J AWT setBackground(Color.orange) ist unter Win7 Aero nicht orange AWT, Swing, JavaFX & SWT 3
B Color String Code AWT, Swing, JavaFX & SWT 3
C Swing Button color transparent AWT, Swing, JavaFX & SWT 4
B Color.BLUE in String umwandeln AWT, Swing, JavaFX & SWT 4
W Verschiedene Foreground color in Combo SWT Auswahlliste AWT, Swing, JavaFX & SWT 5
lumo SWT Table Selection Color +Focus Out AWT, Swing, JavaFX & SWT 14
Developer_X Die Transparente Color AWT, Swing, JavaFX & SWT 8
A SWT - group - border color? AWT, Swing, JavaFX & SWT 4
V SWT Color Problem AWT, Swing, JavaFX & SWT 2
S Color in Cell AWT, Swing, JavaFX & SWT 2
O JTabbedPane - Selected Color? AWT, Swing, JavaFX & SWT 1
X JButton color change AWT, Swing, JavaFX & SWT 2
G Color AWT, Swing, JavaFX & SWT 5
S noobfrage: background color wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
M setColor mit Fehler cannot fiend symbol (java.awt.Color) AWT, Swing, JavaFX & SWT 2
R SWT color Objekt AWT, Swing, JavaFX & SWT 4
L setBorder(BorderFactory.createLineBorder(Color,2) AWT, Swing, JavaFX & SWT 4
T Background Color JSpiner AWT, Swing, JavaFX & SWT 2
D ComboBox mit Farben aus java.awt.color AWT, Swing, JavaFX & SWT 4
L Farbregler - Werte als Zahl ausgeben - Color AWT, Swing, JavaFX & SWT 5
S java.awt.color Schriftfarbe AWT, Swing, JavaFX & SWT 3
T setBackground(Color) funktioniert nicht mit HTML? AWT, Swing, JavaFX & SWT 2
N java.awt.Color zu HTML Farbcode (JEditorPane) AWT, Swing, JavaFX & SWT 1
G standard blau (windows) != color.blue AWT, Swing, JavaFX & SWT 2
G Unsupported color conversion request AWT, Swing, JavaFX & SWT 3
S Hilfe bei Color(Helligkeit) AWT, Swing, JavaFX & SWT 4
S Object in Color umwandeln AWT, Swing, JavaFX & SWT 2
S Selection Color in JTabbedPane AWT, Swing, JavaFX & SWT 5
T Color lässt sich nicht verändern AWT, Swing, JavaFX & SWT 3
Z JPanels spiegeln und JLabel Background-color AWT, Swing, JavaFX & SWT 4
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
FrittenFritze Text in Flying Saucer selectierbar machen AWT, Swing, JavaFX & SWT 0
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
N In Textdatei Text anfügen per GUI AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
CptK Swing Button: ImageIcon unter den Text AWT, Swing, JavaFX & SWT 4
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
S 2D-Grafik affine Transformation für Text-Shape AWT, Swing, JavaFX & SWT 0
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
H JavaFX - Button und Text - Falsche Darstellung AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
E Swing Text verschwindet AWT, Swing, JavaFX & SWT 1
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
F Icons neben Text in Listview setzen AWT, Swing, JavaFX & SWT 2
K Rich Text FX von TomasMikula AWT, Swing, JavaFX & SWT 0
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
S JAVAFX HTMLEditor wrap text AWT, Swing, JavaFX & SWT 1
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
A JavaFX HTMLEditor in Text umwandeln AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
2 JLabel - setText ändert den Text nicht AWT, Swing, JavaFX & SWT 4
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel anzuzeigenden Text zentrieren AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben