Progress bar

An elegant and easy-to-use progress bar dialog utilizing the Swing GUI class JProgressBar.
Updated 13 Mar 2010

View License

The progress bar can be displayed and manipulated using two approaches.

In the procedural style, the function waitdialog wraps the Java Swing GUI class JProgressBar for enhanced visual experience but is functionally similar to the built-in function waitbar.

In the object-oriented style, ProgressDialog is a class that encapsulates a progress bar created using the waitdialog function, provides get/set access to the status message text and the progress indicator, and ensures proper cleanup on user interruption either using the cancel button or CTRL+BREAK, as well as in case an error occurs.


% show progress bar dialog
dlg = ProgressDialog();

maxiter = 50;
for iter = 1 : maxiter
% do any long-running operation

% update progress bar
dlg.FractionComplete = iter/maxiter;

% update status message
dlg.StatusMessage = sprintf('%d%% complete', fix(100*iter/maxiter));

% destroy progress bar dialog explicitly

% create progress bar dialog with custom status message
dlg = ProgressDialog( ...
'StatusMessage', 'Please wait until operation terminates...', ...
'FractionComplete', 0.25);

% hide status message
dlg.StatusMessage = [];
dlg.FractionComplete = 1;

% create progress bar with indeterminate state
% previous dialog is automatically destroyed on assignment
dlg = ProgressDialog( ...
'StatusMessage', 'Close the dialog to continue', ...
'Indeterminate', true);

Cite As

Levente Hunyadi (2024). Progress bar (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Dialog Boxes in Help Center and MATLAB Answers

Inspired by: Using Java Swing components in MATLAB

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Added indeterminate state; removed external dependencies.