1

我正在从我的 bean 中设置一个输入组件

在我的豆子里

public void InicializarCronometro(ComponentSystemEvent e) {
        HtmlForm form = (HtmlForm) e.getComponent();
        UIInput input = new HtmlInputText();            
        input.setId("cronoInput"); // Must be unique!
        input.setValueExpression("value", createValueExpression("#{jugarPartidoAdmBean.labelCrono}", String.class));

        form.getChildren().add(input);

    }

    private ValueExpression createValueExpression(String valueExpression, Class<?> valueType) {
        FacesContext context = FacesContext.getCurrentInstance();
        return context.getApplication().getExpressionFactory()
            .createValueExpression(context.getELContext(), valueExpression, valueType);
    }

In my xhtml file:
<b:navBar brandHref="indexAdm.xhtml" inverse="true" fixed="bottom" sticky="false">      
        <b:navbarLinks>
            <h:form id="footForm" styleClass="navbar-form navbar-right">
                <f:event type="postAddToView" listener="#{jugarPartidoAdmBean.InicializarCronometro}" />
            <b:row>
                <b:column col-xs="12" col-sm="3" col-md="4" />
                <b:column col-xs="12" col-sm="3" col-md="8" offset="12">
                    <b:commandButton value="Comensar" look="success" action="#{jugarPartidoAdmBean.ComensarPartido()}" style="margin-left: 10%;" />
                </b:column>
            </b:row>
            </h:form>
        </b:navbarLinks>
    </b:navBar>

当我按下按钮时,我调用此方法来启动 crono

public void ComensarPartido() {

        Cronometro crono = new Cronometro(0, 0);
        crono.addObserver(this);
        Thread t = new Thread(crono);
        t.start();              
    }

crono 类工作正常,在我的 beAN 中我实现了 Observer,在更新方法中我有这个:

@Override
    public void update(Observable o, Object arg) {
        this.setLabelCrono((String) arg);
        //InicializarCronometro(new HtmlInputText());
        System.out.println(this.getLabelCrono());

    }

在这一行。setLbaelCrono((String) arg) 我正在设置计数器 00:00, 00:01, 00:02... 等。我想更新我的输入组件以显示 crono 但我没有得到那个结果输入组件保持在 00:00,默认情况下它是“labelCrono”的值。我需要做什么来更新我视图中的组件。?

4

0 回答 0