0

我正在使用来自 icefaces 的企业组件:numberSpinner

我知道如何从 bean 初始化它,例如:

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 的实例

但如何?我试过这样:

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

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

但是当我从 UI 更改微调器的值时不会调用侦听器,所以我认为我错了......

你能帮忙吗?

4

1 回答 1

1

INumberSpinnerListener 是一个接口(我假设名称),因此您需要创建一个实现该接口的类,例如:

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

然后你在调用中提供它的一个实例,例如:

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

如果接口简单,也可以直接定义一个匿名类,比如:

processorAlSpinner =  new NumberSpinner(1,1,100, new INumberSpinnerListener() {
    // ... implementations of all the methods in the listener
});
于 2011-10-04T14:01:16.817 回答