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. Also it is unclear how and why our look and feels modify the desktop properties, this api seems private also.

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.



--
Best regards, Sergey.

Reply via email to