--- a/jdk/test/javax/swing/JComponent/6683775/bug6683775.java Mon Aug 10 14:42:07 2015 +0200
+++ b/jdk/test/javax/swing/JComponent/6683775/bug6683775.java Tue Aug 11 16:32:13 2015 +0300
@@ -31,13 +31,15 @@
*/
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(
@@ -45,39 +47,37 @@
|| 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() {
- 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.setVisible(true);
+ SwingUtilities.invokeAndWait(() -> {
+ JFrame backgroundFrame = new JFrame("Background frame");
+ backgroundFrame.setUndecorated(true);
+ JPanel panel = new JPanel();
+ panel.setBackground(Color.RED);
+ backgroundFrame.add(panel);
+ 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.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.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!");
}
}