On Thu, 22 Oct 2026 13:01:36 GMT, Prasanta Sadhukhan <[email protected]> 
wrote:

>> [JDK-6328248](https://bugs.openjdk.org/browse/JDK-6328248) fixed PrintJob 
>> (1.1 Graphics API) based JProgressBar printing for most L&F however it seems 
>> to cause ClassCastException in AquaProgressBarUI.paint as non-Graphics2D 
>> path was not handled
>> `Caused by: java.lang.ClassCastException: class sun.print.ProxyPrintGraphics 
>> cannot be cast to class java.awt.Graphics2D (sun.print.ProxyPrintGraphics 
>> and java.awt.Graphics2D are in module java.desktop of loader 'bootstrap') `
>> 
>> FIx is made to render Aqua progress bar into BufferedImage, then drawImage 
>> for non-Graphics2D case where 1.1 PrintJob is used
>> 
>> 
>> 
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   FIx vertical string text to be non-blocky

src/java.desktop/macosx/classes/com/apple/laf/AquaProgressBarUI.java line 224:

> 222:                 final boolean paintText = progressBar.isStringPainted()
> 223:                                          && 
> !progressBar.isIndeterminate();
> 224:                 final Graphics2D printerGraphics = 
> SwingUtilities2.getGraphics2D(g);

I guess this is OK .. meaning in practice this fn digs out a G2D, so we can 
print non-blockily and if it ever fails, the worst is the blocky text.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/31749#discussion_r4416798084

Reply via email to