본문 바로가기

JAVA/JAVA TIP

JAVA console Color (콘솔 색상 추가하기)

 

오늘 해볼 건 제목 그대로입니다.

 

console

바로 콘솔 창에 색을 입력하는 방법이에요.

 

스크립트를 공부하다가 문득 자바 콘솔에도 색상을 입힐 수 있을 거 같은데?라는 생각으로 찾아봤더니 역시 있더라고요.

 

방법은 매우 간단합니다.

 

 

    public static final String black    = "\u001B[30m" ;
    public static final String red      = "\u001B[31m" ;
    public static final String green    = "\u001B[32m" ;
    public static final String yellow   = "\u001B[33m" ;
    public static final String blue     = "\u001B[34m" ;
    public static final String purple   = "\u001B[35m" ;
    public static final String cyan     = "\u001B[36m" ;
    public static final String white     = "\u001B[37m" ;

    public static final String exit     = "\u001B[0m" ;

이것만 있으면 색상을 입힐 수 있어요.

 

static 은 어느 곳이나 인스턴스를 생성하지 않고 사용하게 만들어줍니다.

 

final은  상수로 변하지 않는 수라고 생각하시면 편합니다. 프로그램이 실행되면 처음 입력한 값에서 절대 변하지 않습니다. 실행 도중 새로운 값을 넣으려 하면... 에러가 반겨줄 거예요.

 

변수명 옆으로 문자열들이 바로 해당 변수명 컬러들의 컬러 코드입니다.

더 찾아보려 했는데 제가 찾은 건 저렇게만 있네요.

 

마지막으로 exit는 왜 따로 있나 궁금하실 텐데 

이게 돌아가는 방식이 (컬러코드 + 입력 텍스트 + 종료 코드) 이렇게 사용을 해요.

만약 종료 코드가 없다면 마지막으로 넣었던 컬러코드로 계속 console이 적용돼서 저렇게 종료를 해줘야 한다고 해요.

 

제가 참고한 곳 링크 남겨드릴게요.

https://www.geeksforgeeks.org/how-to-print-colored-text-in-java-console/

 

 

System.out.println(blue+"Hello~"+exit);

이렇게 사용하면 끝! 

아참 저는 다크 모드를 써서 콘솔 창이 검은색이다 보니까 black이 하얀색으로 나오는데 기본에서는 검은색으로 나오는지 잘 모르겠네요.

 

public static void main(String [] args) throws IOException {



        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        while(true) {
            System.out.print("TEXT : ");
            String massge = bf.readLine();

            if("x".equals(massge)) return;


            System.out.print("\nColor : ");
            String color = bf.readLine();

            logMassge(massge, color);
            

        }
    }

    public static void logMassge(String massge, String color){
        if     ("Black".equals(color) || "black".equals(color))         color = black;
        else if("Red".equals(color) || "red".equals(color))             color = red;
        else if("Green".equals(color) || "green".equals(color))         color = green;
        else if("Yellow".equals(color) || "yellow".equals(color))       color = yellow;
        else if("Blue".equals(color) || "blue".equals(color))           color = blue;
        else if("Purple".equals(color) || "purple".equals(color))       color = purple;
        else if("Cyan".equals(color) || "cyan".equals(color))           color = cyan;
        else color = white;


        System.out.println(color+massge);
    }

로그 메시지 메소드를 따로 만들어서 계속 사용하는 것도 괜찮을 거 같아요.

 

사용할 경우는 거의 없을 거 같지만 저처럼 궁금한 사람들이 있을까 봐 글 작성합니다.

 

 

'JAVA > JAVA TIP' 카테고리의 다른 글

Java 입문 login처리 예제 (1)  (0) 2021.11.08
JAVA txt(file) 불러오기 예제 (split)  (0) 2021.11.08
JAVA txt(file) 불러오기 및 추가 방법  (0) 2021.11.02