diff --git a/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java b/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java index 9d34a4dd593ad7b1cf6d324f6295ad8015baec5f..727120ca09055860aefc79dec899b182adc205d8 100644 --- a/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java +++ b/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java @@ -806,11 +806,12 @@ public class MetalTabbedPaneUI extends BasicTabbedPaneUI { // Paint the background for the tab area if ( tabPane.isOpaque() ) { - if (!c.isBackgroundSet() && (tabAreaBackground != null)) { + Color background = c.getBackground(); + if (background instanceof UIResource && tabAreaBackground != null) { g.setColor(tabAreaBackground); } else { - g.setColor( c.getBackground() ); + g.setColor(background); } switch ( tabPlacement ) { case LEFT: diff --git a/test/javax/swing/JTabbedPane/8007563/Test8007563.java b/test/javax/swing/JTabbedPane/8007563/Test8007563.java index 5f73173df341a2b116b1f2469e1cea5050c92d31..aa2307df050e4f89cc30071109f631484fd99f82 100644 --- a/test/javax/swing/JTabbedPane/8007563/Test8007563.java +++ b/test/javax/swing/JTabbedPane/8007563/Test8007563.java @@ -21,9 +21,7 @@ * questions. */ -import java.awt.Color; -import java.awt.Point; -import java.awt.Robot; +import java.awt.*; import java.util.ArrayList; import java.util.concurrent.CountDownLatch; import javax.swing.JFrame; @@ -119,6 +117,20 @@ public class Test8007563 implements Runnable { } } - invokeLater(this); + SecondaryLoop secondaryLoop = + Toolkit.getDefaultToolkit().getSystemEventQueue() + .createSecondaryLoop(); + new Thread() { + @Override + public void run() { + try { + Thread.sleep(200); + } catch (InterruptedException e) { + } + secondaryLoop.exit(); + invokeLater(Test8007563.this); + } + }.start(); + secondaryLoop.enter(); } }