--- old/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java 2016-04-06 23:43:27.000000000 +0400 +++ new/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java 2016-04-06 23:43:27.000000000 +0400 @@ -65,6 +65,8 @@ public static final int padSpaceBetweenStrings = 12; private String acceleratorDelimiter; + private TextUIDrawing textUIDrawing; + /** * Constructs an instance of the {@code MetalToolTipUI}. */ @@ -96,6 +98,23 @@ tip = null; } + @Override + protected void installDefaults(JComponent c) { + super.installDefaults(c); + if (textUIDrawing != SwingUtilities2.DEFAULT_UI_TEXT_DRAWING + && textUIDrawing instanceof UIResource) { + textUIDrawing = SwingUtilities2.DEFAULT_UI_TEXT_DRAWING; + } + } + + @Override + protected void uninstallDefaults(JComponent c) { + super.uninstallDefaults(c); + if (textUIDrawing instanceof UIResource) { + textUIDrawing = null; + } + } + public void paint(Graphics g, JComponent c) { JToolTip tip = (JToolTip)c; Font font = c.getFont(); @@ -127,7 +146,7 @@ paintTextR.height); } else { g.setFont(font); - SwingUtilities2.drawString(tip, g, tipText, paintTextR.x, + textUIDrawing.drawString(tip, g, tipText, paintTextR.x, paintTextR.y + metrics.getAscent()); accelBL = metrics.getAscent(); } @@ -135,7 +154,7 @@ if (!accelString.equals("")) { g.setFont(smallFont); g.setColor( MetalLookAndFeel.getPrimaryControlDarkShadow() ); - SwingUtilities2.drawString(tip, g, accelString, + textUIDrawing.drawString(tip, g, accelString, tip.getWidth() - 1 - insets.right - accelSpacing + padSpaceBetweenStrings @@ -148,7 +167,7 @@ return accel.equals("") ? 0 : padSpaceBetweenStrings + - SwingUtilities2.stringWidth(c, fm, accel); + textUIDrawing.getStringWidth(c, fm, accel); } public Dimension getPreferredSize(JComponent c) {