2010-01-13 3 views
2

저는 실제로 데스크톱 응용 프로그램에서 Swing Application Framework를 사용하고 있으며 세션 상태 지속성 및 자원 관리자 (세계화에 적합 함)를 유용하게 사용합니다.스윙 응용 프로그램 프레임 워크 @Action 주석? 무엇 때문에?

이제 @Action 주석 기능을 테스트했으며 실제로 그것을 사용하지 않는 것에 비해 어떤 이점도 보이지 않는다. 주로 공식 문서 목록 이러한 장점 :

편리 한 곳에서 구성 요소 에 대한 모든 관련 시각적 단서와 이벤트 처리 로직을 넣을 수 있습니다.

예 시각적 큐를 저장하는이 장소는 자원 번들입니다. (Resource Manager와 함 2 사용할 수 있음) 예 한 곳의 이벤트 처리 논리가 공통 메소드 내에 있습니다. 여러 이벤트에 공통으로 적용하기 위해 메소드에 주석을 달 필요가 없습니다.

액션 인터페이스를 사용하는 또 다른 편리한 장점은 여러 UI 구성 요소에서 동일한 조치를 재사용 할 수 있다는 것입니다. GUI를 자주

예, 분명히 이벤트 처리는 다른 이벤트에 공통 될 수 있지만 다시 @Action 주석이 다른 액션 청취자 방법에서 공통의 메소드를 호출 할 필요가 없습니다 사용 할 수있는 작업을 수행 할 수 여러 방법을 제공합니다 .

openButton.setAction(actionMap.get("open")); 
// NOI18N 

@Action public void open() { 
    // processing logic 
} 

대신 : :이 쓰는 장점을 많이 볼 수 없습니다

openButton.addActionListener(new 
java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       openButtonActionPerformed(evt); 
      } }); 

private void openButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    // processing logic 
} 

후자 사용하여, 나는 깔끔한 인 개인 내 방법을 유지하는 것이 언급, 또한 특정 구성 요소가 청취자를 추가하는 것을 제어합니다 (동일한 시각적 큐를 공유하는 대신 각자 자신의 리소스를 갖기 때문에!)

누구나 실제 아이를 발견했습니다. @Action 주석 사용에 관심이 있습니까?

답변

1

NetBeans를 사용할 때 @Action으로 표시된 모든 메소드는 구성 요소에 대한 작업 설정을 위해 NetBeans GUI에서 자동으로 사용할 수 있습니다.

+0

알겠습니다. 그런데 왜 NetBeans 편집기에서 구성 요소에 이벤트 수신기를 추가하는 대신 netbeans 편집기에서 구성 요소에 동작을 설정하기 위해 주석을 사용합니까? 이점은 무엇입니까? – user225486

+0

그럼 그들이 자동으로 당신을 위해 할 수있는 몇 가지 보일러 플레이트 코드를 저장할 수 있도록 거기에 그들이 아닌가요? 나는 잠시 동안 그것을 사용하지 않았기 때문에 framework + netbeans이 당신을 위해 무엇을했는지 기억하지 못합니다. – willcodejavaforfood

+0

NetBeans 편집기에서 자동으로 생성 할 수없는 주석을 사용하여 어떤 코드가 자동으로 생성되는지는 알 수 없습니다. 실제로 액션 주석을 사용하는 데 어떤 이점도 보이지 않습니다. – user225486

2

설명서는 귀하의 질문에 대한 답변을 제공합니다.

http://java.sun.com/developer/technicalArticles/javase/swingappfr/#actions

는 차라리 익명의 ActionListener보다 @Action를 사용하는 이점이 @Action 그것이 정말 쉽게 같은 아이콘으로 작업을 위해 일을 지역화 할 수 있습니다 프레임 워크에 아주 좋은 편리한 훅이라고 생각합니다 , 텍스트 또는 니모닉. 또한 @Action 어노테이션이있는 메소드가 Task 객체를 반환하면 프레임 워크는 EDT에서 실행해서는 안되는 실행 코드를 적절하게 처리합니다.

프레임 워크 @Action을 사용하지 않고 ActionListeners를 지역화하고 EDT에서 실행해서는 안되는 코드를 관리하는 방법에 대해 조심해야합니다 (응답 성있는 UI가 필요한 경우).

작업을 반환하는 메서드에서 @Action을 사용하면이 프레임 워크에서 제공하는 매우 강력한 편리 성을 얻을 수 있습니다.

관련 문제