2014-07-11 3 views
0

저는 스카우트에서 새로 왔으며 버튼에 마우스 수신기를 추가하고 싶습니다. 버튼을 마우스 오른쪽 버튼으로 클릭하여 구현할 수 있습니다.이클립스 스카우트 버튼을 마우스 오른쪽 버튼으로 클릭하십시오.

나는 모든 MouseListener 객체가 있다는 것을 알고 :

MouseListener mouseListener = new MouseListener() { 

    @Override 
    public void mouseReleased(MouseEvent e) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void mousePressed(MouseEvent e) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseExited(MouseEvent e) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseEntered(MouseEvent e) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseClicked(MouseEvent e) { 
    // TODO Auto-generated method stub 

    } 
}; 

하지만 어떻게 버튼에 추가하기?

나는 기능을

addButtonListener(listener); 

을 찾을 버튼 리스너의 클래스의 MouseListener하지 않습니다 (그러나 모두의 EventListener에서 확장된다)

답변

1

이클립스 스카우트 뒤에 중요한 개념은 separation of UI and GUI입니다. SWT와 같은 GUI 라이브러리에 대해 프로그램을 작성하지 않지만 필드를 포함하는 양식을 정의하십시오. 이는 응용 프로그램의 일종의 모델을 나타냅니다. 이 모델은 다른 기술 (SWT, Swing 및 Eclipse RAP)으로 렌더링되어 웹 응용 프로그램을 만듭니다.

이 접근법의 가격은 모델 계층이 각 그래픽 라이브러리에서 제공하는 것만 큼 가능성이 없다는 것입니다. 모델 계층은 비즈니스 애플리케이션 (일반적으로 양식 기반)에 필요한 것을 집중 조명합니다.

SWT 또는 Swing MouseListener을 Scout 모델에 직접 등록 할 수없는 이유입니다. 이 방향으로 나아갈 필요가 있다면 스카우트 모델을 확장하는 것이 좋은 방법 일 수 있습니다. (이 최근 예제를 참조하십시오 : Scout tables with fixed columns, 웹 -ii 도메인 관련)

이 방법의 장점은 기본 기술이 변경 될 때 응용 프로그램을 다시 작성할 필요가 없다는 것입니다 (그래픽 라이브러리, Eclipse 플랫폼 ...). 이는 수명주기가 긴 (10 년 이상) 응용 프로그램에서 작업 할 때 중요합니다.


Duplicate post on the Scout Forum