< prev index next >

test/javax/swing/JInternalFrame/6726866/bug6726866.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2017, 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
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -20,19 +20,24 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
 /* @test
-   @bug 6726866
-   @summary Repainting artifacts when resizing or dragging JInternalFrames in non-opaque toplevel
-   @author Alexander Potochkin
+   @bug 6726866 8186617
+   @summary Repainting artifacts when resizing or dragging JInternalFrames in
+            non-opaque toplevel
    @run applet/manual=yesno bug6726866.html
 */
 
-import javax.swing.*;
-import java.awt.*;
-import java.lang.reflect.Method;
+import java.awt.Color;
+import java.awt.Window;
+
+import javax.swing.JApplet;
+import javax.swing.JDesktopPane;
+import javax.swing.JFrame;
+import javax.swing.JInternalFrame;
+import javax.swing.JLabel;
 
 public class bug6726866 extends JApplet {
 
     public void init() {
         JFrame frame = new JFrame("bug6726866");

@@ -52,16 +57,14 @@
         frame.setSize(400, 400);
         frame.setVisible(true);
         frame.toFront();
     }
 
-    private void setWindowNonOpaque(Window w) {
-        try {
-            Class<?> c = Class.forName("com.sun.awt.AWTUtilities");
-            Method m = c.getMethod("setWindowOpaque", Window.class, boolean.class);
-            m.invoke(null, w, false);
-        }
-        catch (Exception e) {
-            e.printStackTrace();
+    public static void setWindowNonOpaque(Window window) {
+        Color bg = window.getBackground();
+        if (bg == null) {
+            bg = new Color(0, 0, 0, 0);
         }
+        window.setBackground(
+                new Color(bg.getRed(), bg.getGreen(), bg.getBlue(), 0));
     }
 }
< prev index next >