< prev index next >

test/javax/swing/JComponent/6683775/bug6683775.java

Print this page

        

@@ -29,57 +29,57 @@
             java.desktop/sun.awt
    @run main bug6683775
 */
 
 import com.sun.awt.AWTUtilities;
-import sun.awt.SunToolkit;
 
 import javax.swing.*;
 import java.awt.*;
 import java.awt.image.BufferedImage;
 
 public class bug6683775 {
+    static final int LOC = 100,
+            SIZE = 200;
+
     public static void main(String[] args) throws Exception {
         GraphicsConfiguration gc = getGC();
        if (!AWTUtilities.isTranslucencySupported(
                AWTUtilities.Translucency.PERPIXEL_TRANSLUCENT)
                 || gc == null) {
             return;
         }
-        SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
         Robot robot = new Robot();
         final JFrame testFrame = new JFrame(gc);
 
-        SwingUtilities.invokeLater(new Runnable() {
-            public void run() {
+        SwingUtilities.invokeAndWait(() -> {
                 JFrame backgroundFrame = new JFrame("Background frame");
                 backgroundFrame.setUndecorated(true);
                 JPanel panel = new JPanel();
                 panel.setBackground(Color.RED);
                 backgroundFrame.add(panel);
-                backgroundFrame.setSize(200, 200);
+            backgroundFrame.setBounds(LOC, LOC, SIZE, SIZE);
                 backgroundFrame.setVisible(true);
 
                 testFrame.setUndecorated(true);
                 JPanel p = new JPanel();
                 p.setOpaque(false);
                 testFrame.add(p);
                 AWTUtilities.setWindowOpaque(testFrame, false);
                 testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-                testFrame.setSize(400, 400);
-                testFrame.setLocation(0, 0);
+            testFrame.setBounds(LOC, LOC, SIZE, SIZE);
                 testFrame.setVisible(true);
-            }
         });
 
-        toolkit.realSync();
+        robot.waitForIdle();
+        Thread.sleep(1500);
 
         //robot.getPixelColor() didn't work right for some reason
-        BufferedImage capture = robot.createScreenCapture(new Rectangle(100, 100));
+        BufferedImage capture =
+                robot.createScreenCapture(new Rectangle(LOC, LOC, SIZE, SIZE));
 
         int redRGB = Color.RED.getRGB();
-        if (redRGB != capture.getRGB(10, 10)) {
+        if (redRGB != capture.getRGB(SIZE/2, SIZE/2)) {
             throw new RuntimeException("Transparent frame is not transparent!");
         }
     }
 
     private static GraphicsConfiguration getGC() {
< prev index next >