From 2fe980e0412ce39349822db9436173534e5ae3d1 Mon Sep 17 00:00:00 2001 From: Semyon Sadetsky Date: Tue, 9 Jun 2015 18:57:54 +0300 Subject: [PATCH] 8078269: JTabbedPane UI Property TabbedPane.tabAreaBackground no longer works Reviewed-by: serb, alexsch --- .../swing/plaf/metal/MetalTabbedPaneUI.java | 7 +++--- .../JTabbedPane/8007563/Test8007563.java | 22 ++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/jdk/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java b/jdk/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java index 76451154127..f22fd8e86dd 100644 --- a/jdk/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java +++ b/jdk/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -896,11 +896,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/jdk/test/javax/swing/JTabbedPane/8007563/Test8007563.java b/jdk/test/javax/swing/JTabbedPane/8007563/Test8007563.java index 5f73173df34..5fd35ac36d7 100644 --- a/jdk/test/javax/swing/JTabbedPane/8007563/Test8007563.java +++ b/jdk/test/javax/swing/JTabbedPane/8007563/Test8007563.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -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(); } }