Java Konsola farklı renklerde çıktı verme

Java'da konsol ekranına farklı renklerde yazı yazdırma nasıl yapılır ondan bahsettim .

Java Konsola farklı renklerde çıktı verme

Eğer Java'da terminal veya konsol ekranına farklı renkte yazı yazdırmak / çıktı almak istiyorsanız doğru yazıdasınız . 

Öncelikle bilmeniz gereken ANSI Escape Codes'in  ne olduğudur . ANSI Escape Code aslında işletim sistemi için dizayn edilmiş kodlardır . Bu kodları ASCII alfabesi olarak da farklı bir versiyonda biliyoruz . 

Bu kodlar sayesinde işletim sistemine belirli ölçüde ne yapması gerektiğini bildiriyoruz . ANSI Escape kodları arasında hangi renkte çıktı vereceğini belirttiğimiz renk kodlaması da bulunmakta. Genelde UNIX shell uzerinde çalışsa da Windows komut isteminde de çalışmaktadır .

Bu renk kodlarını şöyle listeleyebiliriz : 

public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_SIYAH = "\u001B[30m";
public static final String ANSI_KIRMIZI = "\u001B[31m";
public static final String ANSI_YEŞİL = "\u001B[32m";
public static final String ANSI_SARI = "\u001B[33m";
public static final String ANSI_MAVI = "\u001B[34m";
public static final String ANSI_MOR = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_BEYAZ = "\u001B[37m";

Bu şekilde değişkenlere atayarak kullanabiliriz örneğin mavi renkte bir yazı yazdırmak istediğimiz de şu şekilde kullanırız :

System.out.println(ANSI_MAVI + "Bakın bu yazı mavi olarak çıkacaktır ");
Bakın bu yazı mavi olarak çıkacaktır 

 

Rastgele renklerde sayılar yazdırma

Pekiştirici olması adına 1'den 100'e kadar sayıları yazdıralım ve bu yazıların renkleri rastgele renklerden olsun . 
Bunun için bu renkleri bir ArrayList'e atıyoruz ve ardından Random sınıfı yardımı ile rastgele renkler seçip ekrana yazdırıyoruz .


import java.util.ArrayList;
import java.util.Random;

public class collections {
    public static void main(String[] args) {
        //Renk kodlarını diziye ekliyoruz .
        ArrayList<String> renkler = new ArrayList();
        renkler.add("\u001B[35m");
        renkler.add("\u001B[30m");
        renkler.add("\u001B[31m");
        renkler.add("\u001B[32m");
        renkler.add("\u001B[33m");
        renkler.add("\u001B[34m");
        renkler.add("\u001B[35m");
        renkler.add("\u001B[36m");
        renkler.add("\u001B[37m");
        // Random sınıfından bir nesne oluşturuyoruz .
        Random rnd = new Random();
        for(int i = 1 ; i <= 100; i++){
            /* Burada rnd.nextInt metodu ile dizi boyutundan bir eksik olan sayıya kadar rastgele bir sayı üretip ,
            o indisteki elemanın renk kodunu yazdırıyoruz. */
            System.out.println(renkler.get(rnd.nextInt(renkler.size()-1))+ " "+ i);
        }
    }

}

Çıktının bir kısmı aşağıdaki gibi gözükecektir .