--- old/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/WindowsLabelUI.java 2016-03-18 19:30:41.000000000 +0400 +++ new/src/java.desktop/share/classes/com/sun/java/swing/plaf/windows/WindowsLabelUI.java 2016-03-18 19:30:41.000000000 +0400 @@ -36,6 +36,8 @@ import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; +import javax.swing.plaf.TextUIDrawing; +import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicLabelUI; @@ -54,6 +56,7 @@ public class WindowsLabelUI extends BasicLabelUI { private static final Object WINDOWS_LABEL_UI_KEY = new Object(); + private TextUIDrawing textUIDrawing; // ******************************** // Create PLAF @@ -69,6 +72,21 @@ return windowsLabelUI; } + @Override + protected void installDefaults(JLabel c) { + super.installDefaults(c); + textUIDrawing = SwingUtilities2.getTextUIDrawing(textUIDrawing); + } + + @Override + protected void uninstallDefaults(JLabel c) { + super.uninstallDefaults(c); + if (textUIDrawing != SwingUtilities2.DEFAULT_UI_TEXT_DRAWING + && textUIDrawing instanceof UIResource) { + textUIDrawing = SwingUtilities2.DEFAULT_UI_TEXT_DRAWING; + } + } + protected void paintEnabledText(JLabel l, Graphics g, String s, int textX, int textY) { int mnemonicIndex = l.getDisplayedMnemonicIndex(); @@ -78,7 +96,7 @@ } g.setColor(l.getForeground()); - SwingUtilities2.drawStringUnderlineCharAt(l, g, s, mnemonicIndex, + textUIDrawing.drawStringUnderlineCharAt(l, g, s, mnemonicIndex, textX, textY); } @@ -92,20 +110,20 @@ if ( UIManager.getColor("Label.disabledForeground") instanceof Color && UIManager.getColor("Label.disabledShadow") instanceof Color) { g.setColor( UIManager.getColor("Label.disabledShadow") ); - SwingUtilities2.drawStringUnderlineCharAt(l, g, s, + textUIDrawing.drawStringUnderlineCharAt(l, g, s, mnemonicIndex, textX + 1, textY + 1); g.setColor( UIManager.getColor("Label.disabledForeground") ); - SwingUtilities2.drawStringUnderlineCharAt(l, g, s, + textUIDrawing.drawStringUnderlineCharAt(l, g, s, mnemonicIndex, textX, textY); } else { Color background = l.getBackground(); g.setColor(background.brighter()); - SwingUtilities2.drawStringUnderlineCharAt(l,g, s, mnemonicIndex, + textUIDrawing.drawStringUnderlineCharAt(l,g, s, mnemonicIndex, textX + 1, textY + 1); g.setColor(background.darker()); - SwingUtilities2.drawStringUnderlineCharAt(l,g, s, mnemonicIndex, + textUIDrawing.drawStringUnderlineCharAt(l,g, s, mnemonicIndex, textX, textY); } }