2015-01-11 6 views
0

나는 1 개 부품을 제외하고 상당히 똑 바른 unix cal 프로그램을 다시 할당하는 지정이있다. 현재 날짜에는 숫자가 강조 표시됩니다. 나는 이것을 어떻게하는지 모른다. Java로 어떻게 할 것입니까?커맨드 라인 자바에있는 원본을 강조하십시오

이미지 :

Calender

+0

는 의존이되지 않습니다 당신이 사용하고있는 터미널에 있습니까? http://unix.stackexchange.com/questions/84078/highlighting-text-in-shell – Ubica

답변

2

ANSI 컬러 코드

프롬프트의 색상의이 세미콜론으로 인 이스케이프 시퀀스 "\ 전자 [SM"를 확장하여 설정 구분 된 ANSI 색상 코드 목록 : "\ e [31; 44; 1m"은 전경색을 빨간색으로, 배경은 파란색으로, 글꼴은 굵게 표시합니다. (이하 "\ 전자"는 ASCII가 이스케이프 문자입니다.은 "m" 문자 순서를 종료하는 것을 잊지 마십시오.) 변수 지표로 출발해야하는 환경에서

바이너리 시퀀스 그들이 너비가 없거나 쉘이 프롬프트의 너비를 정확하게 계산하지 못합니다. Bash는 슬래시 괄호 "[..]"를 사용하여 같은 것을 넣지 만 Tcsh는 퍼센트 중괄호 "% {.. %}"를 사용합니다. http://zipcon.net/~swhite/docs/computers/linux/shell_prompts.html

에서

The codes: 
0 restore default color 
1 brighter 
2 dimmer 
4 underlined text 
5 flashing text 
7 reverse video 

      black red  green yellow blue purple cyan white 
foreground 30  31  32  33  34  35  36  37 
background 40  41  42  43  44  45  46  47 

그래서 자바를 통해이 작업을 수행하기 위해, 당신은

System.out.println(characterCode + character);

String characterCode = "\033[31;44;1m";char character = 'A';

을 설정해야하고 당신은 얻을 것이다 A with f oreground 색상은 빨간색, 파란색의 배경, 굵게에서 글꼴 ...


편집 : 분투의 테스트 결과

public static void main(String[] args) { 
    char character = 'A'; 
    String characterCode; 
    for (int foreground = 30; foreground < 38; foreground++) { 
     for (int background = 40; background < 48; background++) { 
      characterCode = "\033[" + foreground + ";" + background + ";1m"; 
      System.out.print(characterCode + character); 
     } 
     System.out.println(); 
    } 

} 

code result

+0

그래, 그걸 작동시킬 수 없었다. 그래도 좋은 소식통. 내 컴파일러는 \ e를 벗어날 수 없다고 알려줍니다. – Danman

+0

나는 그것을 테스트하지 않았기 때문에 약간의 땜질이 필요할 것이라고 확신한다 ... 나는 실제로 그것에 대해 궁금해한다. :) 나는 리눅스로 전환하여 그것이 어떻게 작동 하는지를 체크 할 것이다 ... – Ubica

+0

좋아, 그럼. 나는 그것을 시도하고'String characterCode = "\ 033 [31; 44; 1m";'. 내가 우분투 터미널에서 시도 : – Ubica