2013-04-17 145 views
2

enter image description here我只是想在JFrame中使用Windows L & F.现在,在使用进度条时,默认颜色为绿色,类似于其他窗口函数(如复制文件等)中使用的颜色。有时您可能已经看到,窗口显示“红色”颜色的进度(可能有在复制文件的情况下覆盖)。如何在我的进度条上使用“红色”颜色,而不是将“前景色”设置为“红色”,看起来不同?JProgressBar中的颜色

+0

你能向我们展示正常进度条的截图以及红色版吗? –

+1

简单,清晰,简单,一切都取决于主题,赢得主题和赢彩色主题,然后相同的字体,鼠标,alingment ....,有简单,清晰,容易的解决方案,以适当的价值或颜色UIManager – mKorbel

+0

我有两个屏幕截图。我如何在这里上传它们? @AndrewThompson – se7en

回答

3

Java使用自己的代码实现本机查看进度栏。它不支持Vista和更新的功能,通过更改栏的颜色来指示停滞/缓慢的进度。

draws the bar可供查看的来源;它使用paintSkin方法绘制栏,默认情况下,该栏只绘制一种颜色。

progress bar use Windows上的设计原则表明您应该:

  • 使用红色或黄色进度条只表示进度状态,而不是任务的最终结果。红色或黄色的进度条表示用户需要采取一些行动来完成任务。如果条件不可恢复,请将进度条保持绿色并显示错误消息。
  • 当存在阻止取得进一步进展的用户可恢复状况时,将进度栏变为红色。显示消息来解释问题并推荐解决方案。 将进度条变成黄色以指示用户已暂停任务或存在妨碍进度的情况,但进度仍在进行(例如,网络连接不畅)。如果用户已暂停,请将暂停按钮标签更改为继续。如果进展受阻,请显示一条消息来解释问题并推荐解决方案。
+0

我可以覆盖它吗? – se7en

+1

改写绘画方法?它与其他窗口外观和感觉元素相互交织,所以我不认为这是微不足道的 – Petesh

+1

大多数本地组件的java实现是皮肤级的实现,并且不公开大多数功能。如果你想完成更类似本地的体验,你可能会更好地切换到SWT。我的大部分java经验都在服务器端,所以在这种情况下可能有人能够更好地提供建议。 – Petesh