JGraphX布局的进度条

3
能否在 mxIGraphLayout 中使用进度条?我有一个需要耗费相当长时间才能完成布局的图表,希望用户能够看到一些进展。如果可以的话,最好能以百分比的形式显示当前进度,但好像没有办法添加在布局期间被调用的任何侦听器。
如果需要注意的话,我正在使用 mxOrganicLayout,但将来可能会更改。
1个回答

3
这可以通过扩展mxOrganicLayout并覆盖以下方法来实现。
    @Override
    public void execute(Object cell)
    {
        progress.setProgress(0);
        try
        {
            super.execute(cell);
        }
        finally
        {
            progress.setProgress(maxIterations);
        }

    }

    @Override
    protected void performRound()
    {
        progress.setNote("Iteration " + iteration);
        progress.setProgress(iteration);
        super.performRound();
    }

    final ProgressMonitor progress;

显然,您需要在某个时间点设置progressexecute通知进度监视器开始执行,并在完成时关闭它。
调用performRound来进行实际更新,因此在那里增加进度将导致进度条前进。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接