package com.link_intersystems.swing; import javax.swing.BoundedRangeModel; import javax.swing.JProgressBar; public class ProgressBarMonitor implements ProgressMonitor { private JProgressBar progressBar; public ProgressBarMonitor(JProgressBar progressBar) { this.progressBar = progressBar; } public void clear() { BoundedRangeModel progressModel = progressBar.getModel(); progressModel.setValue(0); progressModel.setMinimum(0); progressModel.setMaximum(0); progressBar.setString(""); } @Override public void start(String taskName, int totalWork) { clear(); progressBar.setString(taskName); BoundedRangeModel progressModel = progressBar.getModel(); progressModel.setMaximum(totalWork); } @Override public void update(int completed) { BoundedRangeModel progressModel = progressBar.getModel(); int newValue = progressModel.getValue(); progressModel.setValue(newValue + 1); } @Override public void end() { BoundedRangeModel progressModel = progressBar.getModel(); progressModel.setValue(progressModel.getMaximum()); } @Override public boolean isCanceled() { return false; } }