Java 如何在jsf中连接旋钮
有人能告诉我如何连接两个或两个以上的旋钮吗 我是说这件事 我想要点像这样的 最大值=100; knob2.value=最大值-knob1.value 所以如果我把旋钮调高一点,另一个就会下降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
<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;
}
}