It is a bar that can demonstrate the progress of a particular request or a loading of an event. You can have text that indicates the current status of the ProgressBar and can be used both horizontally and vertically.
ProgressBarSampleimport totalcross.sys.Convert;import totalcross.sys.Settings;import totalcross.sys.Vm;import totalcross.ui.Container;import totalcross.ui.Control;import totalcross.ui.MainWindow;import totalcross.ui.ProgressBar;import totalcross.ui.dialog.MessageBox;import totalcross.ui.gfx.Color;import totalcross.util.UnitsConverter;​public class ProgressBarSample extends MainWindow {ProgressBar pbHYellow, pbVRed, pbVCyan, pbHRed, pbHPurple;int gap = UnitsConverter.toPixels(DP + 8);​public ProgressBarSample() {setUIStyle(Settings.MATERIAL_UI);}​@Overridepublic void initUI() {try {super.initUI();​Container sc = new Container();sc.setInsets(gap, gap, gap, gap);add(sc, LEFT, TOP, FILL, FILL);​pbHPurple = new ProgressBar();pbHPurple.max = 50;pbHPurple.highlight = true;pbHPurple.suffix = " of " + pbHPurple.max;pbHPurple.textColor = 0xAAAA;pbHPurple.drawText = true;sc.add(pbHPurple, LEFT, TOP, FILL, PREFERRED);​// endless ProgressBarSamplepbHYellow = new ProgressBar();pbHYellow.max = width / 4; // max-min = width of the barpbHYellow.setBackColor(Color.YELLOW);pbHYellow.setForeColor(Color.ORANGE);pbHYellow.prefix = "Loading, please wait...";pbHYellow.drawText = true;sc.add(pbHYellow, LEFT, AFTER + gap, FILL, PREFERRED);​pbHRed = new ProgressBar();pbHRed.max = 50;pbHRed.setEndless();pbHRed.setBackForeColors(Color.DARK, Color.RED);sc.add(pbHRed, LEFT, AFTER + gap, FILL, FONTSIZE + 50);​final int max = Settings.onJavaSE ? 2000 : 200;// vertical onespbVCyan = new ProgressBar();pbVCyan.vertical = true;pbVCyan.max = max;pbVCyan.textColor = Color.BLUE;pbVCyan.setBackColor(Color.CYAN);pbVCyan.setForeColor(Color.GREEN);sc.add(pbVCyan, RIGHT, AFTER + gap, PREFERRED, FILL);​pbVRed = new ProgressBar();pbVRed.vertical = true;pbVRed.max = 50;pbVRed.setBackForeColors(Color.RED, Color.DARK);sc.add(pbVRed, BEFORE - gap, SAME, FONTSIZE + 50, SAME);​onSwapFinished();} catch (Exception ee) {MessageBox.showException(ee, true);}}​@Overridepublic void onSwapFinished() {final int ini = Vm.getTimeStamp();repaintNow();// runs the bench testint max = pbVCyan.max;for (int i = max; --i >= 0;) {int v = pbHPurple.getValue();v = (v + 1) % (pbHPurple.max + 1);Control.enableUpdateScreen = false; // since each setValue below updates the screen, we disable it to let it paint all at once at the endpbHPurple.setValue(v);pbVCyan.setValue(i);pbHYellow.setValue(5); // increment valuepbHRed.setValue(v);Control.enableUpdateScreen = true;pbVRed.setValue(v);if (Settings.onJavaSE) {Vm.sleep(20);}}}}
Type | Name | Description |
int | max | Progress Bar maximum value. |
int | value | Current value of progress Bar. |
String | prefix | It is the text that appears to the left of the value, remembering that the text output is prefix + value + sufix |
String | suffix | It is the text that appears to the right of the value, remembering that the text output is prefix + value + suffix |
boolean | drawText | It will indicate if the text will be displayed in progress bar or not, by default it comes as false. |
boolean | drawValue | It will indicate if the value will be displayed in the progress bar. |
Type | Name | Description |
Constructor | ProgressBar() | Instances a ProgressBar with the minimum values 0 and maximum value 100. |
Constructor | ProgressBar(int min, int max) | Instances a ProgressBar with the values passed in the variables min and max. |
Void | setEndless() | Use in a horizontal ProgressBar to leave it without end. |
Void | setValue(int n) | Updates the current progressbar value and draws the ProgressBar with the updated state. |
Void | setValue(int value, String prefix, String suffix) | Updates the current value of progressBar and draws it again with the updated state and with texts before the value and after the value. ​ |
See the Java Docs for more information.
You can check the example contained in the SDK, in tc.samples.api.ui ProgressBarSample.