Zum Inhalt springen

Schriftfarben in der Konsole


StarPrinz

Empfohlene Beiträge

Hallo,

versuchs mal damit: (aus d.c.l.j)

Ich wollte es früher mal ausprobieren, bin aber leider nicht dazu gekommen.

Gruß Jaraz

---------------------------------------------------------

> Kann mit jemand den Befehl sagen mit der ich die Textfarbe in von einem

> Text, der in der Kommandozeile ausgegeben werden soll, ändern kann ?

Das geht mit Purem Java überhaupt nicht. Im Textmodus kannst du nur über

System.out (und System.err) Bytes ausgeben, die dann von einem Terminal

interpretiert werden. Wenn du etwas farbig haben willst, musst du das

Terminal kennen und über die von diesem verstandenen Zeichenfolgen

dieses manipulieren.

Ein verbreiteter Standard sind die ANSI-Escape-Zeichenfolgen.

Unter Windows 9x ist dafür die Datei ANSI.SYS zuständig, die in der

Config.sys geladen werden muss. Unter Linux verstehen die meisten

Terminals (Konsolen) automatisch ANSI-Zeichenfolgen, andere Systeme

kenne ich nicht.

(Ich habe auch einmal versucht, eine Java-Komponente zu schreiben,

die diese Zeichenfolgen versteht, die ist aber noch im

pre-Alpha-Stadium und würde bei deinem Problem sowieso nichts helfen).

Da diese ANSI-Escape-Zeichenfolgen etwas kryptisch sind (also

nicht unbedingt programmiererfreundlich), habe ich eine Klasse

geschrieben, die alle Möglichkeiten der ANSI-Folgen für die

Textausgabe (Cursor-Positionierung, Farbe, blinken, Bildschirm

löschen) ausnutzt: paul.tools.TextTools (in PPS /Pauls

Package-Sammlung enthalten).

> Also ich will ein kleines Menü unter Dos basteln... dazu bräucht

> ich natürlich auch noch die Abfrage der tastendrücke...dafür will

> ich die Pfeiltasten nehmen. Kann mir jemand die Codes für diese

> Tasten geben, damit ich sie erkennen kann bei der Abfrage der

> Tastendrücke ?

Selbst wenn du die Codes hättest, würden sie dir nicht helfen.

Die Standard-Eingabe (System.in) von Java ist nämlich so gebaut,

dass eine Einzel-Zeichen-Eingabe nicht möglich ist. Erst nach

dem nächsten Betätigen der Eingabetaste sind alle bis dahin

eingegebenen Daten abrufbar. Der Nutzer müsste also nach jeder

Betätigung einer Cursor-Taste <Return> drücken.

Aber auch hier gibt es eine Lösung. Der ANSI-Escape-Standard

bietet nämlich auch die Möglichkeit, Tasten umzudefinieren.

Damit kann man also z.B. die '->'-Taste in "<rechts>"+Enter

umwandeln. Auch dafür habe ich eine Klasse geschrieben:

paul.tools.ANSIInput (ebenfalls in PPS enthalten).

Dort gibt es auch schon vorgegebene Konstanten für die

wichtigsten Tasten (also auch die Cursortasten).

Allerdings habe ich gelesen (noch nicht ausprobiert),

dass die Tastenumbelegung unter den meisten

Nicht-Windows-ANSI-Treibern wegen Sicherheitsrisiken

deaktiviert ist. Dann dürfte dies unter Linux also nicht

funktionieren.

Viel Erfolg

Paul

--

Pauls Package-Sammlung: http://members.tripod.de/ePaul/PPS-1.1.4-complete.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...