--- old/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalButtonUI.java 2016-04-06 23:43:23.000000000 +0400 +++ new/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalButtonUI.java 2016-04-06 23:43:23.000000000 +0400 @@ -72,6 +72,8 @@ private static final Object METAL_BUTTON_UI_KEY = new Object(); + private TextUIDrawing textUIDrawing; + // ******************************** // Create PLAF // ******************************** @@ -98,10 +100,15 @@ // ******************************** public void installDefaults(AbstractButton b) { super.installDefaults(b); + textUIDrawing = SwingUtilities2.getTextUIDrawing(textUIDrawing); } public void uninstallDefaults(AbstractButton b) { super.uninstallDefaults(b); + if (textUIDrawing != SwingUtilities2.DEFAULT_UI_TEXT_DRAWING + && textUIDrawing instanceof UIResource) { + textUIDrawing = SwingUtilities2.DEFAULT_UI_TEXT_DRAWING; + } } // ******************************** @@ -237,7 +244,7 @@ /*** paint the text disabled ***/ g.setColor(getDisabledTextColor()); } - SwingUtilities2.drawStringUnderlineCharAt(c, g,text,mnemIndex, + textUIDrawing.drawStringUnderlineCharAt(c, g,text,mnemIndex, textRect.x, textRect.y + fm.getAscent()); } }