<Swing Dev> [9] Review request for 6302464 Allow programmatic enabling of subpixel anti-aliasing in Swing

Alexander Zvegintsev alexander.zvegintsev at oracle.com
Fri Aug 21 16:10:27 UTC 2015


+1

Thanks,

Alexander.

On 08/21/2015 06:12 PM, Sergey Bylokhov wrote:
> On 21.08.15 16:12, Alexander Scherbatiy wrote:
>> On 8/21/2015 2:18 PM, Sergey Bylokhov wrote:
>>> Hi, Alexander.
>>> It seems this is only a part of the request. It does not cover some 
>>> situations like java properties, which can be used to 
>>> enable/set/disable anti-aliasing.
>>    The awt.useSystemAAFontSettings property overrides the desktop 
>> font rendering hints which can be obtained from toolkit by 
>> awt.font.desktophints key.
>>> Also it is unclear how and why our look and feels modify the desktop 
>>> properties, this api seems private also.
>>    I have filled an issue on it: JDK-8134146 Java L&Fs redefine 
>> Desktop Font Rendering Hints
>>       https://bugs.openjdk.java.net/browse/JDK-8134146
> Looks fine.
>>
>>   Thanks,
>>   Alexandr.
>>
>>>
>>> On 13.08.15 15:07, Alexander Scherbatiy wrote:
>>>>
>>>> Hello,
>>>>
>>>> Could you review the fix:
>>>>   bug: https://bugs.openjdk.java.net/browse/JDK-6302464
>>>>   webrev: http://cr.openjdk.java.net/~alexsch/6302464/webrev.00
>>>>
>>>> Swing uses internal API to set antialiasing settings for L&Fs and 
>>>> components.
>>>>
>>>>     SwingUtilities2.AATextInfo aaTextInfo = new 
>>>> SwingUtilities2.AATextInfo(
>>>>             RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB, 140);
>>>>
>>>> UIManager.getDefaults().put(SwingUtilities2.AA_TEXT_PROPERTY_KEY, 
>>>> aaTextInfo); // set aa hints globally
>>>> component.putClientProperty(SwingUtilities2.AA_TEXT_PROPERTY_KEY, 
>>>> aaTextInfo); // set aa hints for a JComponent
>>>>
>>>>
>>>> There are some ways to provide a public mechanism for antialiasing 
>>>> enabling in Swing:
>>>>
>>>> 1. Setting antialiasing rendering hints into UI defaults and 
>>>> component client properties:
>>>>
>>>> UIManager.getDefaults().put(RenderingHints.KEY_TEXT_ANTIALIASING, 
>>>> RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
>>>> component.putClientProperty(RenderingHints.KEY_TEXT_ANTIALIASING, 
>>>> RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
>>>>
>>>> 2. Setting a map which contains antialiasing hints:
>>>>
>>>>     Map<RenderingHints.Key, Object> aaHintsMap = new HashMap<>();
>>>>     aaHintsMap.put(RenderingHints.KEY_TEXT_ANTIALIASING, 
>>>> RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
>>>>
>>>>     UIManager.getDefaults().put(AA_TEXT_PROPERTY_KEY, aaHintsMap);
>>>>     component.putClientProperty(AA_TEXT_PROPERTY_KEY, aaHintsMap);
>>>>
>>>> 3. Information about antialiasing hints can be stored in a public 
>>>> class
>>>>
>>>>     AATextInfo aaTextInfo = new 
>>>> AATextInfo(RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB, 140);
>>>>     UIManager.getDefaults().put(AA_TEXT_PROPERTY_KEY, aaTextInfo);
>>>>     component.putClientProperty(AA_TEXT_PROPERTY_KEY, aaTextInfo);
>>>>
>>>> The proposed fix used the first approach.
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>
>>>
>>>
>>
>
>




More information about the swing-dev mailing list