Java 如何在jsf中连接旋钮

Java 如何在jsf中连接旋钮,java,user-interface,jsf,primefaces,Java,User Interface,Jsf,Primefaces,有人能告诉我如何连接两个或两个以上的旋钮吗 我是说这件事 我想要点像这样的 最大值=100; knob2.value=最大值-knob1.value 所以如果我把旋钮调高一点,另一个就会下降 <h3>Colors</h3> <div class="knob-container ui-corner-all"> <p:knob foregroundColor="red" backgroundColor="#00000" value

有人能告诉我如何连接两个或两个以上的旋钮吗

我是说这件事

我想要点像这样的 最大值=100; knob2.value=最大值-knob1.value

所以如果我把旋钮调高一点,另一个就会下降

<h3>Colors</h3> 
    <div class="knob-container ui-corner-all">
        <p:knob foregroundColor="red" backgroundColor="#00000" value="#{knobView.value}">
            <p:ajax listener="#{knobView.onChange}"/>
        </p:knob>  
        <p:knob foregroundColor="blue" backgroundColor="#0000FF" value="#{knobView.value2}">
            <p:ajax listener="#{knobView.onChange}"/>
        </p:knob>  
    </div>
编辑: 附加信息 我想要一些类似于: 开始时knob1=50;knob2=50 我将knob1设置为60,knob2自动下降到40
我将knob1设置为10,knob2设置为90,使用两种onChange方法,并在更改另一个旋钮后更新

XHTML


有点不清楚你想要什么,你能解释一下吗?添加你的onChange方法。你想两者都配对吗?比如:我需要@ManagedBeanname=knobView吗?我没有使用@Named+@ManagedBean访问bla bla bla,但它可以部分工作,也会生成新的旋钮圈,因此每次事件后我都会获得+1,但数字是正确的,例如knob1=7,knob2=25,我会调试它;阅读更多关于@NamedThe‘@Named’的内容,它是用于xhtml和bean之间的绑定。'@ManagedBeanname=knobView'也可以,但'@ManagedBean'是旧的解决方案。只使用一个。我预先输入了´@Named`和CDI范围。它与[ad]ManagedBeanname=knobView[ad]Named[ad]会话一起工作,两者都可以处理,但它存在错误,因为我应该只使用Named或Managed with only Named,我得到的原因是:javax.el.PropertyNotFoundException:/index.xhtml[ad]18,39 value={knobView.value1}:Target unreable,标识符“knobView”解析为空有两个@SessionScope,使用javax.enterprise.context.SessionScoped、@Named和getter/setter,它必须工作。@w3Charlie:这也是“组合”任何其他两个或更多组件的方法。看见
public void onChange(){  
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, 
            "val1: " + value + " " +
            "val2: " + value2           , null
            )); 
    this.value2 = maxval - this.value;

}  
<div class="knob-container ui-corner-all">
    <p:knob id="knob_1" foregroundColor="red" backgroundColor="#00000"
        value="#{knobView.value1}">
        <p:ajax listener="#{knobView.onChange1()}" update="knob_2" />
    </p:knob>
    <p:knob id="knob_2" foregroundColor="blue" backgroundColor="#0000FF"
        value="#{knobView.value2}">
        <p:ajax listener="#{knobView.onChange2()}" update="knob_1" />
    </p:knob>
</div>
@Named
@SessionScoped
public class KnobView implements Serializable {

    int value1;
    int value2;
    int maxval = 100;
    // getter & setter

    public void onChange1() {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
                "val1: " + value1 + " " +
                        "val2: " + value2,
                null));
        this.value2 = maxval - value1;
    }

    public void onChange2() {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
                "val1: " + value1 + " " +
                        "val2: " + value2,
                null));
        this.value1 = maxval - value2;
    }

}