Farbig schreiben

Simon93

Mitglied
Hey,
ich habe ein Programm und gebe Texte über System.out.println aus.
jetzt möchte ich mal die Farbe des Texts von schwarz auf rot ändern.
Wie mach ich das in bluej?
Oder geht das gar nicht, habe nichts gefunden, was in der Standartkonsole von java läuft.
 
G

Gast2

Gast
Die "Standartkonsole von java" ist deine Windowskonsole.
Um dessen Schriftfarbe zu ändern brauchst du z.b. C++ mit JNI.
 

Simon93

Mitglied
Dann steht es aber unter dem eigentlichen Text.
Mal was anderes nebenbei: ist es möglich, mein Konsolenfenster zu vergrößern, dass also mehr Text rein passt, weil das Ding ist im Moment überfordert.
 

ARadauer

Top Contributor
du kannst die konsole mit java nicht verändern...

Mit Swing ein eigenes Fenster bauen und dort eine Textare einfügen ist die einzige sinnvolle lösung ;-)
 

Simon93

Mitglied
Puh, das klingt nach viel Arbeit.
Aber ich denke mal, dass es auf Dauer nicht anders geht, weil ich habe so eine immens große Ausgabe, auf die man auch noch zurückscrollen können soll.
Schade hätt ja sein könn, dass es einen Befehl gibt, der sagt, wieviele Zeilen in das Fenster gehen...
 

henpara

Bekanntes Mitglied
ein fenster zu basteln, wo die konsolenausdrücke auch ausgegeben werden ist eig. super einfach.
hier ein beispiel: (bin selber noch recht neu in java, also bitte mit vorsicht genießen)
Java:
public class Repframe extends JFrame{
	JScrollPane jsp;
	TextArea text;
	Font f1;
	public Repframe(String titel){
		// INITIALISIERUNG
		text = new TextArea( "Hier wird das Log geschrieben." + System.getProperty("line.separator") );
		jsp = new JScrollPane(text);
		// POSITIONIERUNG 
		this.getContentPane().setLayout(null);
		this.setBounds(50, 50, 1000, 500);
		this.setResizable(false);
		this.setBackground(Color.lightGray);
		this.getContentPane().add(start);
	        this.getContentPane().add(jsp);
		jsp.setBounds(1, 35, 998, 380);
		// PARAMETER setzen
		f1 = new Font("Arial", Font.BOLD,  12);
		this.setTitle(titel);
		text.enableInputMethods(false); 
		//LISTENERS und EVENTS
	}
dann in der Klasse noch die Methode zum schreiben implementieren:
Java:
	public  void writeToLogBox(String msg) {
		"DEIN_Repframe".text.append(msg);
	}

bei der Font kannst du dann entsprechend die Schriftart mit allem Klimbim so ändenr, daß dein text entsprechend ausgegeben wird. - musst die font natürlich noch der textarea zuordnen.


Hoffe das hilft dir schonmal n bischen

mfg
 

faetzminator

Gesperrter Benutzer
Man kann auch einfach Sysout / Syserr direkt im Programm oder auf der ausführenden Konsole [in eine Datei] umleiten...
Oder allenfalls unnötige[re] Informationen weglassen, um den Output zu verkleinern...
 

vladimir

Aktives Mitglied
Einen Ansatz gibt es noch! Du nimmst den System.out Stream und leitest dem auf deine TextArea oder TextPane um! Dort kannstdu die Ausgaben nach belieben formatieren. Suche mal in web da gibt es genug Beispiele. Ich gucke ob ich meine alten Sourcen finde!
 
G

Gast2

Gast
Um dessen Schriftfarbe zu ändern brauchst du z.b. C++ mit JNI.
unter Windows ja - Windows hatte den ANSI Kram nur unter gewissen Vorraussetzungen direkt unterstützt (zusätzliche Treiber) ... ansonsten nur API-Aufrufe - was ja dann JNI wäre

Die Farbe des Textes, den du über println an die Konsole ausgibst, kannst du mit Java allein nicht ändern.
doch - Colours ... ist zwar Bash - aber Konsole ist Konsole ... schließlich ist der Weg ja Standartisiert

Aber ich denke mal, dass es auf Dauer nicht anders geht, weil ich habe so eine immens große Ausgabe, auf die man auch noch zurückscrollen können soll.
kommt darauf an was Du deinem Kunden anbieten willst ... wen er mit einer Konsole nicht zufrieden ist (ist kaum jemand) dann wirst Du um eine GUI basierte Lösung nicht herum kommen

Schade hätt ja sein könn, dass es einen Befehl gibt, der sagt, wieviele Zeilen in das Fenster gehen...
müsste über den Befehle [c]mode[/c] unter Windows funktionieren

hand, mogel
 

vladimir

Aktives Mitglied
Hier der Kodeschnipsel, allerdings für SWT realisiert!
Java:
package essm.b2;

import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.custom.StyledText;

public class B2Console extends Composite {

	java.io.PrintStream consolenStream=null;
	java.io.PrintStream consolenErrorStream=null;
	java.io.PrintStream sysStreamer=null;
	java.io.PrintStream errStreamer=null;
	Display display = null;
	StyledText styledText = null;
    
	
	/**
	 * Main-Methode.<br>
	 */
	public static void main(String[] args) {
		Display display = Display.getDefault();
		Shell shell = new Shell(display);
		shell.setLayout(new FillLayout());
		shell.setSize(new Point(300, 200));
		B2Console thisClass = new B2Console(shell, SWT.NONE);
		shell.open();	
		
		
		thisClass.makeSysTestPrints(100);

		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
	
	public B2Console(Composite parent, int style) {		
		super(parent, style);
		display=parent.getDisplay();
		initialize();
		myInitialize();		
		
		System.out.println("Console gestartet!");

	}

	private void initialize() {		
		styledText = new StyledText(this, SWT.V_SCROLL | SWT.H_SCROLL);
		styledText.setEditable(false);
		this.setLayout(new FillLayout());
		setSize(new Point(300, 200));
		this.addDisposeListener(new org.eclipse.swt.events.DisposeListener() {
			public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e) {
				System.setOut(sysStreamer);
				System.setErr(errStreamer);
			}
		});
	}
	
	private void myInitialize(){
        // neuer Stream der Alle println aufrufe nach foo.onEvent umleitet
		sysStreamer= new java.io.PrintStream(System.out);
        consolenStream = new java.io.PrintStream(System.out) {            
            @Override
			public void print(boolean b) {
            	onEvent(""+b);
			}
			@Override
			public void print(char c) {
				onEvent(""+c);
			}
			@Override
			public void print(double d) {
				onEvent(""+d);
			}
			@Override
			public void print(float f) {
				onEvent(""+f);
			}
			@Override
			public void print(int i) {
				onEvent(""+i);
			}
			@Override
			public void print(long l) {
				onEvent(""+l);
			}
			@Override
			public void print(Object obj) {
				onEvent(""+obj);
			}
			
			@Override
			public void println(boolean x) {
				onEventln(""+x);
			}
			@Override
			public void println(char x) {
				onEventln(""+x);
			}
			@Override
			public void println(double x) {
				onEventln(""+x);
			}
			@Override
			public void println(float x) {
				onEventln(""+x);
			}
			@Override
			public void println(int x) {
				onEventln(""+x);
			}
			@Override
			public void println(long x) {
				onEventln(""+x);
			}
			@Override
			public void println(Object x) {
				onEventln(""+x);
			}
			@Override
            public void print(String s) {
                onEvent(s);
            }            
            @Override
            public void println(String s) {
                onEventln(s);
            }
        };
        
        errStreamer= new java.io.PrintStream(System.err);
        consolenErrorStream = new java.io.PrintStream(System.err) {            
            @Override
			public void print(boolean b) {
            	onEventErr(""+b);
			}
			@Override
			public void print(char c) {
				onEventErr(""+c);
			}
			@Override
			public void print(double d) {
				onEventErr(""+d);
			}
			@Override
			public void print(float f) {
				onEventErr(""+f);
			}
			@Override
			public void print(int i) {
				onEventErr(""+i);
			}
			@Override
			public void print(long l) {
				onEventErr(""+l);
			}
			@Override
			public void print(Object obj) {
				onEventErr(""+obj);
			}
			
			@Override
			public void println(boolean x) {
				onEventlnErr(""+x);
			}
			@Override
			public void println(char x) {
				onEventlnErr(""+x);
			}
			@Override
			public void println(double x) {
				onEventlnErr(""+x);
			}
			@Override
			public void println(float x) {
				onEventlnErr(""+x);
			}
			@Override
			public void println(int x) {
				onEventlnErr(""+x);
			}
			@Override
			public void println(long x) {
				onEventlnErr(""+x);
			}
			@Override
			public void println(Object x) {
				onEventlnErr(""+x);
			}
			@Override
            public void print(String s) {
				onEventErr(s);
            }            
            @Override
            public void println(String s) {
            	onEventlnErr(s);
            }
        };

        System.setOut(consolenStream);
        System.setErr(consolenErrorStream);
	}

    public void makeSysTestPrints(int anzahl){
        for (int i = 0; i < anzahl; i++) {

           System.out.println(i+". "+Math.random());
            try {
                Thread.sleep(1);
            } catch (Exception e) {
            }

        }
    }
	
    /**
     * Fügt den String dem Textfeld hinzu
     *
     * @param str
     */
    void onEvent(String str) {    	
    	final String strM=str;
    	Thread tr = new Thread(new Runnable() {
        	public void run() {
    			display.syncExec(new Runnable() {
    		        public void run() {
    		        	styledText.append(strM);    		        	
    		        	}
    		    });
    		}
        },"printThread");
    	tr.start();
    }
               /**
     * Fügt den String dem Textfeld hinzu
     *
     * @param str
     */
    void onEventln(String str) {
    	final String strM=str;
    	Thread tr = new Thread(new Runnable() {
        	public void run() {
    			display.syncExec(new Runnable() {
    		        public void run() {
    		        	styledText.append(strM+"\n");
    		        }
    		    });
    		}
        },"printlnThread");
    	tr.start();
    } 
    
    /**
     * Fügt den String dem Textfeld hinzu
     *
     * @param str
     */
    void onEventErr(String str) {    	
    	final String strM=str;
    	Thread tr = new Thread(new Runnable() {
        	public void run() {
    			display.syncExec(new Runnable() {
    		        public void run() {
    		        	int indexFor=styledText.getText().length();
    		        	String st=strM;
    		        	styledText.append(strM);
    		        	int indexNach=st.length();
    		        	
    		        	org.eclipse.swt.custom.StyleRange styleRange 
    		        	= new org.eclipse.swt.custom.StyleRange();
    		        	styleRange.start = indexFor;
    		        	styleRange.length = indexNach;
    		        	styleRange.foreground = display.getSystemColor(SWT.COLOR_RED);
    		        	styledText.setStyleRange(styleRange);    		        	
    		        }
    		    });
    		}
        },"printThread");
    	tr.start();
    }
               /**
     * Fügt den String dem Textfeld hinzu
     *
     * @param str
     */
    void onEventlnErr(String str) {
    	final String strM=str;
    	Thread tr = new Thread(new Runnable() {
        	public void run() {
    			display.syncExec(new Runnable() {
    		        public void run() {    	
    		        	int indexFor=styledText.getText().length();
    		        	String st=strM+"\n";
    		        	styledText.append(strM+"\n");
    		        	int indexNach=st.length();
    		        	
    		        	org.eclipse.swt.custom.StyleRange styleRange 
    		        	= new org.eclipse.swt.custom.StyleRange();
    		        	styleRange.start = indexFor;
    		        	styleRange.length = indexNach;
    		        	styleRange.foreground = display.getSystemColor(SWT.COLOR_RED);
    		        	styledText.setStyleRange(styleRange);
    		        }
    		    });
    		}
        },"printlnThread");
    	tr.start();
    } 
}
 

Antoras

Top Contributor
@vladimir

Die Methoden von PrintStream usw. zu überschreiben ist eine schlechte Idee, da sie unnötig ist:
Java:
PrintStream ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(new File("output.txt"))), true);
System.setOut(ps);
Dies leitet den kompletten Code in eine Datei um. Kann man dann auch auf eine beliebige GUI-Komponente umleiten...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Schreiben in Excel -Zellen farbig darstellen Java Basics - Anfänger-Themen 4
L Strings in einem JOptionPane farbig Java Basics - Anfänger-Themen 2
T Text auf der Konsole farbig machen Java Basics - Anfänger-Themen 6
B Erste Schritte Text in Konsole farbig ausgeben Java Basics - Anfänger-Themen 3
T Input/Output Scanner Eingaben auf Console farbig darstellen, wie? Java Basics - Anfänger-Themen 13
0 String farbig in TextArea Java Basics - Anfänger-Themen 10
S Zahl in einem Array farbig? Java Basics - Anfänger-Themen 6
H Kommandozeile: Text farbig ausgeben Java Basics - Anfänger-Themen 3
T Teil eines Strings farbig gestalten Java Basics - Anfänger-Themen 10
F Tabellenspaltenfarbe wird nicht farbig angezeigt? Java Basics - Anfänger-Themen 7
G zelle(n) makieren, button klick, Zelle(n) farbig Java Basics - Anfänger-Themen 4
G TextArea - Strings farbig Java Basics - Anfänger-Themen 2
G 1. Buchstabe eines JList eintrages verschieden farbig machen Java Basics - Anfänger-Themen 12
S Hat jemand eine Idee warum die JLabels nicht mehr farbig Java Basics - Anfänger-Themen 7
G ListCellRenderer - TeilString farbig markieren Java Basics - Anfänger-Themen 3
V Tabelle farbig gestallten Java Basics - Anfänger-Themen 20
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
J Dateien lesen und schreiben Java Basics - Anfänger-Themen 5
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
S Bot schreiben Java Basics - Anfänger-Themen 1
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
C XML Datei schreiben Java Basics - Anfänger-Themen 14
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
NeoLexx Datenströme Lesen und Schreiben einer Textdatei Java Basics - Anfänger-Themen 2
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
J Programm schreiben Java Basics - Anfänger-Themen 5
G In Datei schreiben Java Basics - Anfänger-Themen 1
B Werte aus einem Unterprogramm in ein Array schreiben Java Basics - Anfänger-Themen 2
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
J Methode selber schreiben Java Basics - Anfänger-Themen 5
M Plateau Prgramm schreiben Java Basics - Anfänger-Themen 2
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
J String in Datei schreiben Java Basics - Anfänger-Themen 4
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
S JSON Datei schreiben und lesen Java Basics - Anfänger-Themen 3
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
H projekt 1 code schöner schreiben. Java Basics - Anfänger-Themen 25
O findRoot Methode schreiben in einem Intervall Java Basics - Anfänger-Themen 31
O Erste Schritte Eigene charAt(i) Methode schreiben Java Basics - Anfänger-Themen 10
X Arrays untereinander schreiben Java Basics - Anfänger-Themen 4
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
P Strings in String Array schreiben Java Basics - Anfänger-Themen 13
Y kann jemand die Terme mit Zahlen schreiben ?? Java Basics - Anfänger-Themen 4
L Input/Output In Farben schreiben Java Basics - Anfänger-Themen 3
x-tshainge In gespeicherter Datei schreiben? Java Basics - Anfänger-Themen 7
F Schreibprogramm nur markierten Text in kursiv oder fett schreiben Java Basics - Anfänger-Themen 3
A JSON Lesen und Schreiben. Java Basics - Anfänger-Themen 3
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
karlmasutra Ausgabe in ein Array schreiben Java Basics - Anfänger-Themen 14
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
J Mit JSF Formular in Datenbank schreiben Java Basics - Anfänger-Themen 3
amazinglife77 Input/Output Lesen/Schreiben Properties: in eclipse geht, als JAR nicht Java Basics - Anfänger-Themen 4
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
R Input/Output Dateinamen aus Verzeichnis in Datei schreiben Java Basics - Anfänger-Themen 3
E Wert in Textfeld schreiben Java Basics - Anfänger-Themen 1
P Erste Schritte Schreiben in eine Datei Java Basics - Anfänger-Themen 9
M Java Roboter schreiben mit Eclipse Java Basics - Anfänger-Themen 3
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
M Rekursion schreiben Java Basics - Anfänger-Themen 16
M In einer Datei schreiben - Java Java Basics - Anfänger-Themen 3
D Eine einfache Verschlüsselung schreiben Java Basics - Anfänger-Themen 3
X Streams und Ausgabe - lässt sich das einfacher schreiben oder schöner schreiben? Java Basics - Anfänger-Themen 5
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
G Java Objektorientiert schreiben Java Basics - Anfänger-Themen 1
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
B Schreiben von zu vielen Einträgen in einer Datenbank Java Basics - Anfänger-Themen 9
F Wert in Linux auf die Konsole schreiben Java Basics - Anfänger-Themen 3
A von ArrayList in Labels schreiben Java Basics - Anfänger-Themen 19
X Kann man post increment "vollständig schreiben"? Java Basics - Anfänger-Themen 13
T Klassen In Eingabefeld von externem Programm schreiben wenn angewählt. Java Basics - Anfänger-Themen 6
X Dateien direkt hintereinander schreiben, Dateiname Java Basics - Anfänger-Themen 25
G Messwerte in 2 Dateien schreiben Java Basics - Anfänger-Themen 20
I Input/Output 3 Werte in Datei schreiben, duplikate vermeiden Java Basics - Anfänger-Themen 4
H Integer in Datei schreiben Java Basics - Anfänger-Themen 2
W Java in "Terminal" schreiben Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben