2013-05-20 3 views
0

SWT 응용 프로그램을 처음 사용하고 이미 개발 한 작은 응용 프로그램의 테마를 쉽게 변경할 수있는 방법을 찾고 있습니다.SWT 응용 프로그램에서 테마를 변경하는 방법

일부 인터넷 검색을 수행 한 후 준비된 테마를 다운로드하여 응용 프로그램에 적용 할 수있는 것처럼 보이는 프레젠테이션이라는 것을 알 수 있습니다. 그게 맞습니까?

다른 방법으로 올바른 튜토리얼을 가르쳐 줄 수 있습니까?

감사

답변

2

Ecipse RCP를 사용하지 않고 SWT에 대해 이야기하는 경우 애플리케이션을 테마로 지정할 방법이 없습니다.

SWT의 주요 이점 중 하나는 OS 리소스를 사용하여 시스템 응용 프로그램과 유사하다는 것입니다. 테마를 사용하면이 접근 방식과 모순됩니다.

그러나 Eclipse RCP 4를 사용하는 경우 @ Ran의 대답을 살펴보십시오.

+0

감사합니다. Baz. 리치 클라이언트 플랫폼이없는 단순한 애플리케이션 일뿐입니다. 그래서 당신이 시도하고 색상을 사용자 정의하고 배경 이미지 등 SWT의 원칙에 반대하는 추가 말하고 있습니까? – Richie

+0

@ user1600419 음, 그럼 테마를 사용할 수 없습니다. 당신이 할 수있는 유일한 방법은 맞춤 위젯을 만드는 것입니다. 실제로 테마 전환이 간단한 경우 [AWT/Swing] (http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html)을 사용하는 것이 좋습니다. upvoting 및 내 대답을 수락 고려하십시오. – Baz

+0

Tks Baz. Ok. 그래서 나는 지금 이해한다. 이제 위젯의 모양과 느낌을 변경하는 쉬운 방법이 있습니다. 사용자 정의 위젯을 원한다면 힘든 방법으로 스스로를 사용자 정의해야 할 것입니다. – Richie

1

org.eclipse.e4.ui.css.swt.theme 확장 점은 테마 확장의 생성을 지원합니다. 이 확장은 스타일에 대한 ID와 CSS 파일에 대한 포인터를 정의합니다.

org.eclipse.core.runtime.products 확장의 cssTheme 속성을 통해 기본 테마를 정의 할 수도 있습니다. 고정 된 스타일을 정의하는데도 사용할 수 있습니다.

스타일을 전환하려면 IThemeEngine을 사용하십시오.

package com.example.e4.rcp.todo.handlers; 

import org.eclipse.e4.core.di.annotations.Execute; 
import org.eclipse.e4.ui.css.swt.theme.IThemeEngine; 

public class ThemeSwitchHandler { 
    // Remember the state 
    static boolean defaulttheme= true; 
    @Execute 
    public void switchTheme(IThemeEngine engine) { 
    System.out.println("ThemeSwitchHandler called"); 
    // The last argument controls 
    // whether the change should be persisted and 
    // restored on restart 
    if (!defaulttheme) { 
     engine.setTheme("com.vogella.e4.todo.defaulttheme", true); 

    } else { 
     engine.setTheme("com.vogella.e4.todo.redtheme", true); 
    } 
    defaulttheme= !defaulttheme; 
    } 
} 
관련 문제