2014-04-26 1 views
2

페인트 표식을 사용하여 진행률 표시 줄의 색을 변경할 수 있습니까?SWT 진행률 막대의 색상을 변경하는 방법은 무엇입니까?

전성기 전경색과 배경색은 원하지 않지만 Windows에서 정상적인 녹색 진행률 막대가 컴퓨터에서 작동하지만 내 전경과 배경처럼 작동하기를 원합니다. 암이 요구 사항에 붙어 그것이 궁금, 페인트 리스너를 사용하여 가능하다고 들었습니다

나는 아래의 코드를 시도하지만

GC gc = event.gc; 
Device device=Display.getDefault(); 
Color foreground = gc.getForeground(); 
Color background = gc.getBackground(); 
gc.setForeground(device.getSystemColor(SWT.COLOR_RED)); 
gc.setBackground(device.getSystemColor(SWT.COLOR_YELLOW)); 

작동하지 않습니다!

도움을 주시면 감사하겠습니다.

+0

[SWT- Windows에서 ProgressBar 색상을 변경하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/4674678/swt-how-to-change-progressbar-color-in-windows) – Baz

+1

진행 표시 줄의 모양을 변경할 수있는 방법이 없습니다. * 직접 * 페인트하지 않으려는 경우. 정말로 필사적이라면 SWT/AWT 브릿지를 사용하여'JProgressBar'를 사용할 수 있습니다. – Baz

+1

Windows (Vista 이상)를 사용하는 경우 [여기] (http://www.eclipse.org/)에서 볼 수있는 것처럼 다양한 스타일의 ProgressBar (빨간색, 녹색, 노란색)를 사용할 수 있습니다. swt/R3_4/images/progress-bar.png). – Baz

답변

1

진행률 막대의 색상은 운영 체제에 의해 결정됩니다.

Windows 환경의 대부분의 조건에서 진행률 막대는 녹색입니다. setState(int state) 명령을 사용하면 진행률 막대의 "상태"가 변경되어 일부 시스템에서도 색상이 변경됩니다. Windows 7에서는 이 일시 중지되고은 노란색으로 표시되고 오류은 빨간색으로 표시됩니다. 그러나 이러한 상태는 다른 의미있는 의미를 지니 며 사용자가 단순히 색상의 문체를 추론하는 데 혼동을 줄 수 있습니다. 일반적으로 색은 변하지 않는 것으로 간주해야합니다.