Jface 메뉴의 모든 이미지를 비활성화하는 방법이지만 도구 모음에 활성화하는 방법

StackOverflow https://stackoverflow.com/questions/734841

  •  09-09-2019
  •  | 
  •  

문제

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
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top