2013-04-24 43 views
2

我是Java的新手,但需要知道如果开发人员可以让他/她改变JProgressBar的形状。我的意思是,在我的情况下,我想改变形状,使它看起来像一个圆圈或其他东西?改变JProgressBar的形状

虽然我只是希望它从条形变成弧形,或者你可以说我想将条形变成任何其他形状。我的进度条可能看起来像条形以外的曲线。我想在其中添加一条曲线。

+1

对于[示例](http://stackoverflow.com/a/11148842/230513)。 – trashgod 2013-04-24 03:10:39

+0

我想用它作为弧线而不是线性形状的方式,或者你可以说它也可以变成椭圆形吗? – 2013-04-24 03:16:11

+0

*“任何提示”*用户经常讨厌开发者认为是'kewl'*或任何想法的东西!“*坚持吧,直到你意识到为什么。 – 2013-04-24 03:24:19

回答

7

JProgressBar的外观由组件的UI委托控制,通常来自BasicProgressBarUI。您可以提供您自己的代理,如here所示,并覆盖所需的绘画方法。

附录:对于半圆形显示器,您可能能够利用JFreeChart库中的DialPlot。一个完整的例子被讨论here。您可以直接使用它或在您的UI委托中呈现图表。

image

+0

我想改变形状不是颜色感谢您的帮助彻底@trash – 2013-04-24 03:33:50

+0

你可以使用任何你想要的颜色;它不会自动匹配平台的默认值,但您可以使用UI [默认值](http://stackoverflow.com/a/11148842/230513)作为开始。 – trashgod 2013-04-24 03:45:58

+0

您也可以更改UI委托中的形状,但是您可以从BasicProgressBarUI中重新使用较少的代码。不是一件容易的事。查看http://javagraphics.blogspot.co.at/2008/05/angles-need-gui-widget-for-angles.html - 这里给JSlider一个“角度UI”。 – lbalazscs 2013-04-24 12:28:11