Jface 메뉴의 모든 이미지를 비활성화하는 방법이지만 도구 모음에 활성화하는 방법
문제
Jface 응용 프로그램에서 사용할 작업 세트를 작성하고 해당 동작에 이미지를 할당하면 해당 이미지가 도구 모음 (원하는 위치)과 메뉴 (원하는 위치)에 표시됩니다.
완전히 별도의 동작 세트를 제공하는 것 외에 (처음에는 동작 지점의 일부를 제거하는 것), 툴바에만 이미지를 표시하고 메뉴에 텍스트 만 표시하도록하는 방법은 무엇입니까?
해결책 3
나는 결국 동작을 복제하고, 쌍을 만들고, 하나는 이미지가 있고, 하나는없고, 처음에는 행동의 이점을 제거했습니다 (한숨). 반면에, 각 동작은 컨트롤러에서 단일 메소드를 호출하여 작업을 수행하기 때문에 너무 교활하지 않으며 쌍을 함께 그룹화하는 것이 무슨 일이 일어나고 있는지 합리적으로 명확하게 만듭니다.
다른 팁
나는이 문제에 대해서도 달려 갔다 (도구 모음과 메뉴에 대해 다른 텍스트를 원했기는 제외). 나는 동일한 동작을 사용했지만 두 가지 다른 인스턴스를 사용했다.
// Use this one in the menu
Action a = new Action();
// Use this one in the toolbar
Action a2 = new Action();
a2.setImageDescriptor(img);
또는 툴바 버전의 동작에 이미지 디스크립터를 저장하고 메뉴 버전의 경우 NULL로 설정할 수 있습니다.
나는 이것을 직접 확인하지 않았지만이 방법을 봐 :
public int getStyle() { ... }
액션 클래스에 정의되어 있으며 동작이 그래픽으로 표시되는 인터페이스 요소의 유형을 반환하는 것으로 보입니다. 그러면 getImagedScriptor () 메소드를 무시할 수 있습니다.
public ImageDescriptor getImageDescriptor() {
if (getStyle() == AS_DROP_DOWN_MENU)
return null; // No icon in a menu
return someImageDescriptor; // Actual icon
}
제휴하지 않습니다 StackOverflow