2010-07-11 4 views
0

BrowserLibrary 및 BrowserViewer라는 두 개의 모듈이 있습니다.Netbeans 6.8 : 액션 리스너 혼동

브라우저에 gui가 포함되어 있어야합니다.

public class BrowserController implements ActionListener{ 

    public void actionPerformed(ActionEvent e) { 
     if (e.getSource().getVarName() == "navButton") 
     System.out.println("clicked"); 
    } 

} 

및 BrowserViewer 모듈의 BrowserTopComponent.java에 :

그래서 BrowserLibrary 모듈 내부에서 나는 수업과 같이이

private javax.swing.JButton navButton; 
navButton.addActionListener(BrowserController); 

나는 확실하지 않다 이것이 내가해야 올바른 디자인 인 경우 추구. BrowserLibrary는 제 3 자 JAR을로드하는 용도로만 사용해야합니까? 만약 그렇다면 내가 결국 3 개의 모듈로 끝날 것입니다 : BrowserLibrary, Browser, BrowserViewer? 이 경우 종속성은 어떻게 작동합니까? Browser는 BrowserLibrary에 의존하고 BrowserViewer는 Browser에 의존합니까?

브라우저 모듈 내부에 ActionListener를 구현하는 BrowserController 클래스가 있습니까?

또한 e.getSource() 객체의 변수 이름을 어떻게 얻을 수 있습니까? 이 경우 "navButton"은 JButton의 변수 이름입니다.

조회를 사용해야합니까? 어떻게 통합 될 수 있습니까?

답변

0

모듈의 수와 구성은 디자인의 모듈성을 반영해야합니다. 좋은 질문은 "이 모듈을 다른 모듈없이 재사용 할 수 있습니까?"입니다. 대답이 '아니요'인 경우 문제의 모듈은 단단히 결합되어 있으며 아마 단 하나의 모듈이어야합니다. 예를 들어, HTTP 프로토콜을 처리하는 모듈은 브라우저와 독립적으로 사용될 수 있습니다. 브라우저에서 탐색하는 작업은 브라우저 중심 일 가능성이 높으며 아마도 스스로 사용할 수 없습니다.

변수는 런타임 인스턴스이지만 변수 이름은 실제로 프로그래머가 변수를 참조하는 데 사용하는 컴파일 타임 아티팩트입니다. 즉, 모든 스윙 구성 요소에는 식별에 사용할 수있는 이름 속성이 있습니다. 고유성을 보장하는 것은 개발자의 책임임을 유의하십시오.

관련 문제