Java 使用mvvm时如何在zk中更新进度表

Java 使用mvvm时如何在zk中更新进度表,java,progress-bar,zk,server-push,zul,Java,Progress Bar,Zk,Server Push,Zul,祖尔 我想让用户不断更新已完成工作的百分比。(我使用的是mvvmmodel) 因此,我创建了一个progressmeter,其值为bind。 单击开始流程时,会显示一个按钮。 在makeProgress()中,我做了部分工作并发布了命令 我希望它显示的进度条每100毫秒增加一次。 但当我尝试时,进度条在10秒后直接显示100%(100毫秒等待*100) 我错过了什么 还是有更好的方法来做到这一点 不确定这是否有效。。如果需要自动更新进度条,则可能必须使用SelectorComposer而不是

祖尔


我想让用户不断更新已完成工作的百分比。(我使用的是
mvvm
model)
因此,我创建了一个
progressmeter
,其值为bind。
单击开始流程时,会显示一个
按钮

makeProgress()
中,我做了部分工作并发布了命令

我希望它显示的进度条每100毫秒增加一次。 但当我尝试时,进度条在10秒后直接显示100%(100毫秒等待*100)

我错过了什么


还是有更好的方法来做到这一点

不确定这是否有效。。如果需要自动更新进度条,则可能必须使用SelectorComposer而不是BindComposer。SelectComposer可以将数据推送到客户端。您可以让计时器运行@interval并不断更新数据

这是一个非常好的问题,为什么要投反对票?找到了正确的方法
    @GlobalCommand
    @Command
    @NotifyChange("*")
    public void makeProgress(){
        int progress = getProgress();
        if(progress == 100){
            return;
        }
        progress++;
            Thread.sleep(100); // do some part of time consuming work

        setProgress(progress);

        BindUtils.postGlobalCommand(null, null, "makeProgress", null);
    }
<window apply="org.zkoss.bind.BindComposer"
    viewModel="@id('vm') @init('com.javaBean')">
        <progressmeter value="@bind(vm.progress)" width="300px" />
        <button onClick="@command('makeProgress')"></button>
</window>