The appearance of a JProgressBar
is controlled by the component's UI delegate, typically derived from BasicProgressBarUI
. You can supply your own delegate, as shown here, and override the desired paint method.
Addendum: For a semi-circular display, you may be able to leverage DialPlot from the JFreeChart library. A complete example is discussed here. You can use it directly or render the chart in your UI delegate.