JDK-6422951 : progress bar (in indeterminate mode) is not clear on VISTA
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 6
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_vista
  • CPU: x86
  • Submitted: 2006-05-08
  • Updated: 2010-04-02
  • Resolved: 2006-10-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
6 b92Fixed
Related Reports
Relates :  
Relates :  
JDK Info: PIT 6.0 b84

OS: Windows VISTA only

Steps to reproduce:
1) Install jre on windows VISTA
2) Launch any javawebstart application
Example: javaws http://java.sun.com/products/javawebstart/apps/mg.jnlp
3) Once the appln is launched, open java cache viewer (javaws -viewer)
4) Click on the application "Military App"
5) Click on delete Appln

Note that the progress bar (in indeterminate mode) is not clear. It's just a small dot moving from end to end. 

[Progress bar from java cache viewer will be shown only when a single application is chosen for deletion or re-installation]

Snapshot attached: progress_bar.PNG

EVALUATION After further investigation I am convinced that the SizingMargins property is used by Windows to control how the skin image is stretched over the component, not to control the component size itself or it's insets. In fact there does not appear to be any property in the visual style which controls this, but is instead a hard coded value. This makes sense in the Windows world where applications commonly use absolute layout instead of layout managers. In light of this bug should be fixed by replacing the SizingMargin insets with hard coded insets that come from the defaults table.

EVALUATION As part of the fix for 4910864: JProgressBar (indeterm.) renders wrong on WindowsLookAndFeel, Windows2000 + XP The following lines were added to WindowsProgressBar.paintIndeterminateFrame ---- Part part = vertical ? Part.PP_BARVERT : Part.PP_BAR; <skip> // this is the entire progress bar minus the track and borders Insets ins = xp.getMargin(progressBar, part, null, Prop.SIZINGMARGINS); Rectangle progbarExtents = new Rectangle(ins.left, ins.top, bgwidth - ins.left - ins.right, bgheight - ins.top - ins.bottom); ----- (The same getMargin is used in getBox (introduced by the same fix) The inset for Part.PP_BARVERT Prop.SIZINGMARGINS on my Vista box is [10,4,7,4] clipping rectangle is getting way too small.