Display wait bar in Static text box in GUIDE
Show older comments
Hello,
I have seen many posts regarding displaying a Gui for waitbar/progress bar.
I am interested in showing progress bar in a static text box WITH IN my GUI interface.
Any help regarding this will be highly appreciated.
5 Comments
Adam
on 26 Jan 2016
What aspect of it do you need help with?
I assume you have some kind of for loop as progress bars are more tricky to update if your code is running an a while loop of unknown length or some other construct that doesn't allow predictable checkpointing.
Within that for loop you can simply tell your static text box to update in some way.
How you do that depends what you want to show and how many iterations you are running in your loop - e.g. if it is just 10 slow iterations an update every time round the loop is fine. If you are running millions of iterations then you would only want to update the text box every e.g. 1000 or 10000 iterations.
Adam
on 26 Jan 2016
Well, if you want it in a static text box I assume you aren't just using the builtin 'waitbar' - you are free to update the text with whatever you want at the specified intervals. It is entirely up to you how you represent progress in just ordinary text.
You can just add an extra '*' each time if you want or anything as complicated as you want.
JB
on 26 Jan 2016
Walter Roberson
on 26 Jan 2016
waitbar() uses graphics, an axes within a figure. You cannot display a graphics within a static text box.
Are you aiming for a graphical wait bar, or are you aiming for something that updates a text percentage?
Answers (1)
I just go with a java progress bar when I want to put a progress bar in a GUI.
%Create a Progress bar with a range from 0 to 100
jBarHandle = javax.swing.JProgressBar(0, 100);
jBarHandle.setStringPainted(true);
jBarHandle.setIndeterminate(false);
%You need a pixel position for where to put the bar, I tend to do this by finding a reference object in the GUI that I'm going to replace.
posPanel = getpixelposition(someReferenceObject,true);
%Place the progress bar in the GUI
javacomponent(jBarHandle,posPanel,guiFigureHandle);
%Set the value of the progress bar.
jBarHandle.setValue(fix(0));
For full information on the properties available with JProgressBar here's the link.
If you really wanted to use waitbar, you could probably either modify the builtin function, or use the built-in function and clone the axes into your own GUI. Either way though, that seems a fair bit more complicated then just going with java swing.
3 Comments
JB
on 27 Jan 2016
Adam
on 27 Jan 2016
Basically this would be an the equivalent of the static text you want to add. If you are using an actual progress bar like above then you would be best creating a panel of the size and position you want rather than a static text, then use that in Matthew's answer above to provide the correct position.
Statisticalbeginner
on 24 Feb 2016
Great answer. One additional thing I want to ask is how do you show the progress after displaying the progress bar ? How do you pass the "Value" to it? jBarHandle.setValue(update_value); consider update_value is holding the progress value.
Categories
Find more on Environment and Settings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!