< prev index next >
test/javax/swing/JComponent/6683775/bug6683775.java
Print this page
*** 29,85 ****
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 {
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() {
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);
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);
- }
});
! toolkit.realSync();
//robot.getPixelColor() didn't work right for some reason
! BufferedImage capture = robot.createScreenCapture(new Rectangle(100, 100));
int redRGB = Color.RED.getRGB();
! if (redRGB != capture.getRGB(10, 10)) {
throw new RuntimeException("Transparent frame is not transparent!");
}
}
private static GraphicsConfiguration getGC() {
--- 29,85 ----
java.desktop/sun.awt
@run main bug6683775
*/
import com.sun.awt.AWTUtilities;
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;
}
Robot robot = new Robot();
final JFrame testFrame = new JFrame(gc);
! 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.setBounds(LOC, LOC, SIZE, SIZE);
testFrame.setVisible(true);
});
! robot.waitForIdle();
! Thread.sleep(1500);
//robot.getPixelColor() didn't work right for some reason
! BufferedImage capture =
! robot.createScreenCapture(new Rectangle(LOC, LOC, SIZE, SIZE));
int redRGB = Color.RED.getRGB();
! if (redRGB != capture.getRGB(SIZE/2, SIZE/2)) {
throw new RuntimeException("Transparent frame is not transparent!");
}
}
private static GraphicsConfiguration getGC() {
< prev index next >