2011-10-04 4 views
0

나는 icefaces에서 엔터프라이즈 구성 요소를 사용하고 있습니다 : numberSpinner빙상 스피너 리스너?

내가 빈에서 초기화하는 방법을 알고, 예를 들면 :

: 생성자가 같은 자신의 소스 코드에 정의되어

processorAlSpinner = new NumberSpinner(1,1,100,null) 

public NumberSpinner(int number, java.lang.Integer min, java.lang.Integer max, com.icesoft.faces.facelets.component.spinner.INumberSpinnerListener spinnerListener); 

내가 모르는 부분은 리스너를 지정하는 방법입니다. 당신이 값 변경 이벤트

하지만 방법을 받고자하는 경우

는 생성자에서 INumberSpinnerListener의 인스턴스를 지정

그들의 소스 코드를 말한다 (당신은 내가 널 (null)을 넣어 것으로 나타났습니다)?

당신이 도움의 손길을주지하시기 바랍니다 수 ...

public INumberSpinnerListener testSpinnerListener() { 
    logger.info("Listener called!!!!!!!!!!!!!"); 
    return null; 
} 

processorAlSpinner = new NumberSpinner(1,1,100,testSpinnerListener) 

하지만 그래서 내가 잘못 생각 나는 UI에서 스피너의 값을 변경할 때 리스너가 호출되지 않습니다 : 내가 좋아하는 그것을 시도? 그런 다음

class MyListener implements INumberSpinnerListener { 
    // ... implementations of all the methods in the listener 
} 

당신이 전화 예에의 인스턴스를 제공

답변

1

INumberSpinnerListener는 인터페이스 (내가 이름으로 가정하고), 당신은 따라서 그 인터페이스를 구현하는 클래스, 예를 생성 할 필요가있다 :

processorAlSpinner = new NumberSpinner(1,1,100, new INumberSpinnerListener() { 
    // ... implementations of all the methods in the listener 
}); 
: 인터페이스가 단순하다면

processorAlSpinner = new NumberSpinner(1,1,100, new MyListener()); 

은 또한, 직접 뭔가를 익명 클래스를 정의 할 수 있습니다