I had a look around, and there are a few different solutions, but I ended up writing something that uses the HTML5 <progress> element.
eg.,
This picture shows the progress bar dropped into a dialog box, with a status label underneath it.
And, here is the code, in case anyone wants to add a progress bar in a few lines:
package ...; import com.google.gwt.dom.client.Element; import com.google.gwt.user.client.ui.HTML; public class ProgressBar extends HTML { public ProgressBar() { super("<progress style='width: 98%;'></progress>"); } /** * Set the progress indicator the the specified values * @param value Current progress value * @param max Target/complete value */ public void setProgress(int value, int max) { Element progressElement = getElement().getFirstChildElement(); progressElement.setAttribute("value", String.valueOf(value)); progressElement.setAttribute("max", String.valueOf(max)); } /** * Remove the progress indicator values. On firefox, this causes the * progress bar to sweep back and forth. */ public void clearProgress() { Element progressElement = getElement().getFirstChildElement(); progressElement.removeAttribute("value"); progressElement.removeAttribute("max"); } }Have fun!