JAnsi Warum bleiben die Hintergrundfarben beim Reseten der Konsole?

RalleYTN

Bekanntes Mitglied
Hey Leute!
Ich habe ein kleines Problem. Ich möchte eine KI in der Konsole programmieren. Da ich Windowsnutzer bin und die Konsole damit keine Farben darstellen kann verwende ich die JAnsi Bibleothek (Version: 1.9). Mann kann meiner KI beispielsweise sagen, dass die Farbe des Texthintergrundes geändert werden soll. Das funktioniert auch soweit. Wenn ich nun aber meiner KI sage, dass sie den Konsoleninhalt löschen soll, dann bleiben die Hintergrundfarben ohne den Text an der selben Stelle stehen. Fast wie ein Schatten oder sowas.
Unbenannt.png
Meine selbstgeschriebene Console-Klasse sieht so aus:
Java:
package code;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;

import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;

public final class Console {

	public static final Ansi.Color WHITE = Ansi.Color.WHITE;
	public static final Ansi.Color BLACK = Ansi.Color.BLACK;
	public static final Ansi.Color BLUE = Ansi.Color.BLUE;
	public static final Ansi.Color MAGENTA = Ansi.Color.MAGENTA;
	public static final Ansi.Color DEFAULT = Ansi.Color.DEFAULT;
	public static final Ansi.Color GREEN = Ansi.Color.GREEN;
	public static final Ansi.Color CYAN = Ansi.Color.CYAN;
	public static final Ansi.Color RED = Ansi.Color.RED;
	public static final Ansi.Color YELLOW = Ansi.Color.YELLOW;
	
	public static Ansi.Color COLOR_FG = WHITE;
	public static Ansi.Color COLOR_BG = BLACK;

	public static final void cls() {
		
		AnsiConsole.systemInstall();
		AnsiConsole.out.print("\u001b[2J");
		AnsiConsole.out.print(Ansi.ansi().eraseScreen());
		AnsiConsole.out.print("\u001b[0m");
		AnsiConsole.out.print(Ansi.ansi().cursor(0, 0));
		bg(BLACK);
		fg(WHITE);
		COLOR_FG = WHITE;
		COLOR_BG = BLACK;
		AnsiConsole.systemUninstall();
	}

	public static final void bg(Ansi.Color color) {
		
		AnsiConsole.systemInstall();
		AnsiConsole.out.print(Ansi.ansi().bg(color));
		AnsiConsole.systemUninstall();
	}

	public static final void fg(Ansi.Color color) {
		
		AnsiConsole.systemInstall();
		AnsiConsole.out.print(Ansi.ansi().fg(color));
		AnsiConsole.systemUninstall();
	}

	public static final void cur(int x, int y) {
		
		AnsiConsole.systemInstall();
		AnsiConsole.out.print(Ansi.ansi().cursor(x, y));
		AnsiConsole.systemUninstall();
	}

	public static final void printlns(Object... lines) {
		
		Console.resetCodec();
		
		for(int i = 0; i < lines.length; i++) {
			
			System.out.println(lines[i].toString());
		}
	}

	public static final void println(Object text) {

		Console.resetCodec();
		System.out.println(text.toString());
	}

	public static final void println() {
		
		Console.resetCodec();
		System.out.println();
	}

	public static final void print(Object text) {

		Console.resetCodec();
		System.out.print(text.toString());
	}

	public static final void printf(String text, Object... args) {
		
		Console.resetCodec();
		
		for(int i = 0; i < args.length; i++) {
			
			text.replace("{" + i + "}", args[i].toString());
		}
		
		System.out.print(text);
	}

	public static final char scann() {
		
		char read = 0;
		
		try {
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
			read = (char)reader.read();
			reader.close();

		} catch(IOException exception) {
			
			Steve.err(exception);
		}
		
		return read;
	}

	public static final String scannln() {
		
		String read = null;
		
		try {
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
			read = reader.readLine();
			reader.close();

		} catch(IOException exception) {
			
			Steve.err(exception);
		}
		
		return read;
	}

	public static final void resetCodec() {
		
		 try {
			 
			 System.setOut(new PrintStream(System.out, true, "CP850"));
			 
		 } catch(UnsupportedEncodingException exception) {
			 
			 Steve.err(exception);
		 }
	}
}
 

Ähnliche Java Themen

Neue Themen


Oben