--- old/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java 2016-03-18 19:30:47.000000000 +0400 +++ new/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java 2016-03-18 19:30:47.000000000 +0400 @@ -25,6 +25,7 @@ package javax.swing.plaf.basic; +import javax.swing.plaf.TextUIDrawing; import java.awt.*; import java.awt.event.*; import java.beans.PropertyChangeEvent; @@ -125,6 +126,8 @@ */ protected boolean oldBorderPainted; + private TextUIDrawing textUIDrawing; + /* diagnostic aids -- should be false for production builds. */ private static final boolean TRACE = false; // trace creates and disposes @@ -247,6 +250,7 @@ } } } + textUIDrawing = SwingUtilities2.getTextUIDrawing(textUIDrawing); } /** @@ -321,6 +325,10 @@ arrowIcon = null; if (checkIcon instanceof UIResource) checkIcon = null; + if (textUIDrawing != SwingUtilities2.DEFAULT_UI_TEXT_DRAWING + && textUIDrawing instanceof UIResource) { + textUIDrawing = SwingUtilities2.DEFAULT_UI_TEXT_DRAWING; + } } /** @@ -674,16 +682,16 @@ // *** paint the accText disabled if (disabledForeground != null) { g.setColor(disabledForeground); - SwingUtilities2.drawString(lh.getMenuItem(), g, + textUIDrawing.drawString(lh.getMenuItem(), g, lh.getAccText(), lr.getAccRect().x, lr.getAccRect().y + lh.getAccFontMetrics().getAscent()); } else { g.setColor(lh.getMenuItem().getBackground().brighter()); - SwingUtilities2.drawString(lh.getMenuItem(), g, + textUIDrawing.drawString(lh.getMenuItem(), g, lh.getAccText(), lr.getAccRect().x, lr.getAccRect().y + lh.getAccFontMetrics().getAscent()); g.setColor(lh.getMenuItem().getBackground().darker()); - SwingUtilities2.drawString(lh.getMenuItem(), g, + textUIDrawing.drawString(lh.getMenuItem(), g, lh.getAccText(), lr.getAccRect().x - 1, lr.getAccRect().y + lh.getFontMetrics().getAscent() - 1); } @@ -696,7 +704,7 @@ } else { g.setColor(acceleratorForeground); } - SwingUtilities2.drawString(lh.getMenuItem(), g, lh.getAccText(), + textUIDrawing.drawString(lh.getMenuItem(), g, lh.getAccText(), lr.getAccRect().x, lr.getAccRect().y + lh.getAccFontMetrics().getAscent()); } @@ -791,14 +799,14 @@ // *** paint the text disabled if ( UIManager.get("MenuItem.disabledForeground") instanceof Color ) { g.setColor( UIManager.getColor("MenuItem.disabledForeground") ); - SwingUtilities2.drawStringUnderlineCharAt(menuItem, g,text, + textUIDrawing.drawStringUnderlineCharAt(menuItem, g,text, mnemIndex, textRect.x, textRect.y + fm.getAscent()); } else { g.setColor(menuItem.getBackground().brighter()); - SwingUtilities2.drawStringUnderlineCharAt(menuItem, g, text, + textUIDrawing.drawStringUnderlineCharAt(menuItem, g, text, mnemIndex, textRect.x, textRect.y + fm.getAscent()); g.setColor(menuItem.getBackground().darker()); - SwingUtilities2.drawStringUnderlineCharAt(menuItem, g,text, + textUIDrawing.drawStringUnderlineCharAt(menuItem, g,text, mnemIndex, textRect.x - 1, textRect.y + fm.getAscent() - 1); } @@ -807,7 +815,7 @@ if (model.isArmed()|| (menuItem instanceof JMenu && model.isSelected())) { g.setColor(selectionForeground); // Uses protected field. } - SwingUtilities2.drawStringUnderlineCharAt(menuItem, g,text, + textUIDrawing.drawStringUnderlineCharAt(menuItem, g,text, mnemIndex, textRect.x, textRect.y + fm.getAscent()); } }