标签: progressmonitor

IProgressMonitor作为eclipse插件编程中的参数

我看到很多eclipse插件API IProgressMonitor作为其参数之一.

void setRawClasspath(IClasspathEntry[] entries, IProgressMonitor monitor)
    throws JavaModelException;
Run Code Online (Sandbox Code Playgroud)
  1. 这个IProgressMonitor是什么用的?你有什么好榜样吗?
  2. 传递null给它可以吗?或者我是否必须创建并传递一个对象(new ProgressMonitor())?

eclipse eclipse-plugin progressmonitor

6
推荐指数
1
解决办法
2804
查看次数

获取Java ProgressMonitor的取消事件

我有一个ProgressMonitor pm和一个SwingWorker sw.我想取消的SwingWorker当我按cancel上-按钮pm.我想这不应该太难,我读了一些关于SwingWorker和ProgressMonitor的教程,但我无法让它工作.

final ProgressMonitor pm = new ProgressMonitor(frame, "checking", "...", 0, 100);
final SwingWorker sw = new SwingWorker()
{
    protected Object doInBackground() throws Exception 
    {
        doSomethingAndUpdateProgress();
    }
};

sw.addPropertyChangeListener(new PropertyChangeListener()
{
    public void propertyChange(PropertyChangeEvent evt)
    {
        if(evt.getPropertyName().equals("progress"))
        {
            updateProgress();
        }
        if(pm.isCanceled())
        {
            cancelAction();
        }
        if(pm.isDone())
        {
            doneAction();
        }
    }
});

sw.execute();
Run Code Online (Sandbox Code Playgroud)

进度更新工作正常,但pm.isCanceled()永远不会true.我想我需要一个用于ProgressMonitor的propertyChangeListener,但我不知道如何在那里添加一个.

java swing multithreading swingworker progressmonitor

5
推荐指数
1
解决办法
3145
查看次数

ProgressMonitor冗余构造函数?

ProgressMonitor有两个构造函数:

   public ProgressMonitor(Component parentComponent,
                           Object message,
                           String note,
                           int min,
                           int max) {
        this(parentComponent, message, note, min, max, null);
    }


    private ProgressMonitor(Component parentComponent,
                            Object message,
                            String note,
                            int min,
                            int max,
                            ProgressMonitor group) {

        this.min = min;
        this.max = max;
        this.parentComponent = parentComponent;

        cancelOption = new Object[1];
        cancelOption[0] = UIManager.getString("OptionPane.cancelButtonText");

        this.message = message;
        this.note = note;
        if (group != null) {
            root = (group.root != null) ? group.root : group;
            T0 = root.T0;
            dialog = root.dialog;
        }
        else { …
Run Code Online (Sandbox Code Playgroud)

java swing progressmonitor

5
推荐指数
0
解决办法
58
查看次数

Eclipse Jobs API:如何跟踪另一个作业安排的作业进度?

对于调度和加入另一个Eclipse作业的Eclipse作业使用进度监视器的正确方法是什么?我希望子任务与主要任务相关联.

理想情况下,我希望能够告诉子任务使用SubProgressMonitor主监视器创建的子任务,但是我没有看到这样做的方法.我查看了该Job.setProgressGroup(..., ...)方法,但文档指出应该使用该组创建该组IJobManager.createProgressGroup().

这是上下文的代码片段:

@Override
protected IStatus run(final IProgressMonitor monitor) {
    try {
        monitor.beginTask("My Job A", 100);

        MyJobB subtask = new MyJobB();

        // how how should subtask's progress be tracked?
        subtask.schedule();
        subtask.join();

        return Status.OK_STATUS;

    } catch (Exception ex) {
        // return error status
    } finally {
        monitor.done();                 
    }
}
Run Code Online (Sandbox Code Playgroud)

jobs eclipse-plugin progress progressmonitor

3
推荐指数
1
解决办法
3189
查看次数

如何使用ProgressMonitorInputStream

我知道我必须遗漏一些非常明显的东西,但每当我在复制文件时尝试使用ProgressMonitorInputStream时,我都不会得到ProgressDialog弹出窗口.

我看到的示例除了将它们的输入流包装在ProgressMonitorInputStream中之外似乎没什么用处.

文档说:

这将创建一个进度监视器来监视读取输入流的进度.如果需要一段时间,将弹出ProgressDialog以通知用户.如果用户点击取消按钮,则下次读取时将抛出InterruptedIOException.在关闭流时完成所有正确的清理.

这是一个非常简单的例子,我把它放在一起,永远不会弹出带有大文件的对话框,即使我setMillisToPopup()是一个非常小的数字.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.ProgressMonitorInputStream;
import javax.swing.SwingWorker;

public class ProgressBarDemo extends JFrame {

   private static final long serialVersionUID = 1L;

   private JButton button;

   ProgressBarDemo() 
   {
      button = new JButton("Click me!");
      ButtonActionListener bal = new ButtonActionListener();
      button.addActionListener(bal);

      this.getContentPane().add(button);
   }

   private class ButtonActionListener implements ActionListener 
   {

      @Override
      public void actionPerformed(ActionEvent e) {
         // TODO Auto-generated method …
Run Code Online (Sandbox Code Playgroud)

java swing inputstream progressmonitor

3
推荐指数
1
解决办法
2789
查看次数

Java ProgressMonitorInputStream使用现有的JProgressBar

我正在玩Java的ProgressMonitorInputStream来监视数据流经BufferedInputStream.这是我正在尝试的代码:

InputStream in = new BufferedInputStream(
     new ProgressMonitorInputStream(
     new JFrame(),"Scanning",new FileInputStream(dir.getSearchInputFile())));
Run Code Online (Sandbox Code Playgroud)

这非常合适,并弹出一个新的JFrame窗口,其中包含一个显示输入流进度的进度条.

有没有让ProgressMonitorInputstream更新另一个JFrame中存在的现有JProgressBar?

我尝试了各种方法,例如使用构造函数传递JProgressBar,或尝试在参数中指定帧.每次我尝试,我只是得到一个新的JFrame.

我错了吗?

任何投入将不胜感激.

谢谢

java swing inputstream progressmonitor progress-bar

2
推荐指数
1
解决办法
1207
查看次数

Java ProgressMonitor无法正常工作

我的代码如下不起作用,谁能告诉我为什么?还请更正我的代码,我是Java的新手.除此之外,我正在寻找"加载面板组件",类似ProgressMonitor但可能更具吸引力,并且动画更好.如果有人以前使用过这类东西,请建议我.

public class Main extends JFrame {

    private JPanel contentPane;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Main frame = new Main();
                    frame.setVisible(true);

                    ProgressMonitor pm = new ProgressMonitor(frame, "Loading...", 
                            "waiting...",
                            0, 100000);

                    for (int i = 0 ; i < 100000 ; i ++){

                        pm.setProgress(i);
                        pm.setNote("Testing");
                        System.out.println(i);

                        Thread.sleep(1000);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Main() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, …
Run Code Online (Sandbox Code Playgroud)

java swing swingworker jprogressbar progressmonitor

1
推荐指数
2
解决办法
6995
查看次数

如何在 Java 中更改 ProgressMonitor 的标题?

ProgressMonitor progressMonitor = new ProgressMonitor(frame, "", "", 0, 100);

  • progressMonitor.setProgress(0);
  • ...
  • progressMonitor.setProgress(100);

这对我来说很好,但现在我想更改此进度监视器的标题。目前它的“进展......”。

title progressmonitor

1
推荐指数
1
解决办法
302
查看次数