2009-04-09 4 views
0

JFace 응용 프로그램에서 사용할 작업 세트를 만들고 해당 작업에 이미지를 할당하면 해당 이미지가 툴바 (내가 원하는 곳)과 메뉴 (내가 원하지 않는 곳)에서.JFace 메뉴의 모든 이미지를 비활성화 할 수 있지만 도구 모음에서 활성화 된 상태로 유지하는 방법은 무엇입니까?

완전히 다른 두 세트의 작업 (처음 작업 지점을 제거함)을 제공하는 것 외에 툴바에 이미지 만 표시하고 텍스트 만 표시하려면 어떻게해야합니까?

답변

0
나는 본질적으로하여 첫 번째 장소에서 행동의 이익을 제거하지 않고, 이미지와, 하나 하나 쌍을 만드는 작업을 복제 결국

(한숨) . 반면에 각 작업은 컨트롤러에서 작업을 수행하기 위해 하나의 메서드를 호출하기 때문에 너무 교활하지 않고 쌍을 함께 그룹화하면 진행 상황이 합리적으로 명확 해집니다.

0

나는이에게 자신을 확인하지만,이 방법에게 looksee을 제공하지 않은 :

public int getStyle() { ... } 

그것은 Action 클래스에서 정의하고 동작이 그래픽으로 표시되는 인터페이스 요소의 유형을 반환 나타나는 것 . 그럼 당신은 getImageDescriptor() 메소드를 오버라이드 (override) 할 수 :

public ImageDescriptor getImageDescriptor() { 
    if (getStyle() == AS_DROP_DOWN_MENU) 
     return null; // No icon in a menu 
    return someImageDescriptor; // Actual icon 
} 
+0

불행히도, 내가 말할 수있는 한, 그것은 도움이되지 않을 것입니다. getStyle 값이 같은 경우 툴바와 메뉴에 동일한 액션이 사용됩니다. – David

1

나는이 문제도 만났다. (나는 툴바와 메뉴에 다른 텍스트가 필요했다.) 나는 동일한 행동을 사용했지만 두 가지 다른 경우를 사용했다.

// Use this one in the menu 
Action a = new Action(); 

// Use this one in the toolbar 
Action a2 = new Action(); 
a2.setImageDescriptor(img); 

또는 도구 모음 버전의 작업에 이미지 설명자를 저장하고 메뉴 버전을 null로 설정할 수 있습니다.

관련 문제