[작성일: 2023. 02. 14]
JAVA Terminal Color 적용하기
색이나 형태를 적용하고 싶은 문장 앞과 뒤에 예약 문자 추가
기본 8색
- "\033[색상코드m" + 문장 + "\033[0m"
- 색상코드
- 30 ~37 일반색
- 40 ~ 47 일반색(바탕색)
- 90 ~ 97 밝은색
- 100 ~ 107 밝은색(바탕색)
확장 256색
- 글자색 : "\033[38; 5; 색상코드m" + 문장 + "\033[0m"
- 배경색 : "\033[48; 2; 색상코드m" + 문장 + "\033[0m"
- 색상코드 : 0 ~ 255
True Color
- 1670만색 표현 가능
- 256 x 256 x 256
- 글자색 : "\033[38; 2; 색상코드m" + 문장 + "\033[0m"
- 배경색 : "\033[48; 2; 색상코드m" + 문장 + "\033[0m"
- 색상코드 : 빨강; 초록; 파랑
Effect
- 볼드체: "\033[1m" + 문장 + "\033[0m"
- INTENSITY: "\033[2m" + 문장 + "\033[0m"
- 이탤릭체: "\033[3m" + 문장 + "\033[0m"
- 밑줄: "\033[4m" + 문장 + "\033[0m"
- 네거티브: "\033[7m" + 문장 + "\033[0m"
- 두 줄 밑줄: "\033[9m" + 문장 + "\033[0m"
- 취소선: "\033[21m" + 문장 + "\033[0m"
package day03;
import java.util.Random;
import Utils.MyUtil;
public class Ex10_Color {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyUtil u = new MyUtil();
u.p("Color Test");
u.p(u.BLACK + u.UNDERLINE+ "Color Test" + u.END);
u.p(u.RED + "Color Test" + u.END);
u.p(u.GREEN + "Color Test" + u.END);
u.p(u.MAGENTA+ u.ITALIC+ u.DOUBLEUNDERLINE+ "Color Test" + u.END);
u.p(u.YELLOW + "Color Test" + u.END);
}
}
public static void p(String str) {
System.out.println(str);
}
public static void p(int num) {
System.out.println(num);
// Q. AA라는 글자를 8색으로 나타내시오.
// 단, for문으로 구현할 것.
// print 사용
// AAAAAAAAAAAAAAAA
for(int i=30; i<38; i++) {
System.out.print("\033[" + i + "mAA" + u.END);
}
System.out.println();
for(int i=90; i<98; i++) {
System.out.print("\033[" + i + "mAA" + u.END);
}
System.out.println();
for(int i=40; i<48; i++) {
System.out.print("\033[" + i + "m " + u.END);
}
System.out.println();
for(int i=100; i<108; i++) {
System.out.print("\033[" + i + "m " + u.END);
}
System.out.println();
// 확장 256색
for(int i = 0; i<255; i++) {
System.out.print("\033[48;5;" + i + "m " + u.END);
}
System.out.println();
for(int i = 0; i<255; i++) {
System.out.print("\033[38;5;" + i + "m♥" + u.END);
}
System.out.println();
//True Color
Random rd = new Random();
for(int i = 0; i<256; i++) {
int r = rd.nextInt(255);
int g = rd.nextInt(255);
int b = rd.nextInt(255);
// g = r; b = r; 흑백컬러로 나옴
String str = r + ";" + g + ";" + b;
System.out.printf("\033[48;2;" + str +"m "+ u.END);
if(i%32==31) {
System.out.println();
}
}
}