SetShapeTest.java revision 15511:acb15b493fd3
16495Sspeer/* 26495Sspeer * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. 36495Sspeer * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 46495Sspeer * 56495Sspeer * This code is free software; you can redistribute it and/or modify it 66495Sspeer * under the terms of the GNU General Public License version 2 only, as 76495Sspeer * published by the Free Software Foundation. 86495Sspeer * 96495Sspeer * This code is distributed in the hope that it will be useful, but WITHOUT 106495Sspeer * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 116495Sspeer * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 126495Sspeer * version 2 for more details (a copy is included in the LICENSE file that 136495Sspeer * accompanied this code). 146495Sspeer * 156495Sspeer * You should have received a copy of the GNU General Public License version 166495Sspeer * 2 along with this work; if not, write to the Free Software Foundation, 176495Sspeer * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 186495Sspeer * 196495Sspeer * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 206495Sspeer * or visit www.oracle.com if you need additional information or have any 216495Sspeer * questions. 226495Sspeer */ 2311878SVenu.Iyer@Sun.COM 246495Sspeer/** 256495Sspeer * @test 266495Sspeer * @key headful 276495Sspeer * @bug 8159168 8161913 286495Sspeer * @summary [hidpi] Window.setShape() works incorrectly on HiDPI 296495Sspeer * @run main/othervm -Dsun.java2d.uiScale=2 SetShapeTest 306495Sspeer */ 316495Sspeerimport java.awt.BorderLayout; 326495Sspeerimport java.awt.Color; 336495Sspeerimport java.awt.Frame; 346495Sspeerimport java.awt.Panel; 356495Sspeerimport java.awt.Rectangle; 366495Sspeerimport java.awt.Window; 378275SEric Chengimport java.awt.geom.Area; 386495Sspeerimport java.awt.geom.Rectangle2D; 396495Sspeerimport java.awt.Robot; 406495Sspeerimport javax.swing.SwingUtilities; 416495Sspeer 426495Sspeerpublic class SetShapeTest { 436495Sspeer 446495Sspeer private static Window window; 456495Sspeer private static Frame background; 4610309SSriharsha.Basavapatna@Sun.COM 4710309SSriharsha.Basavapatna@Sun.COM public static void main(String[] args) throws Exception { 4810309SSriharsha.Basavapatna@Sun.COM createUI(); 496495Sspeer Robot robot = new Robot(); 506495Sspeer robot.waitForIdle(); 516495Sspeer Rectangle rect = window.getBounds(); 526495Sspeer rect.x += rect.width - 10; 536495Sspeer rect.y += rect.height - 10; 546495Sspeer robot.delay(1000); 556495Sspeer Color c = robot.getPixelColor(rect.x, rect.y); 566495Sspeer try { 576495Sspeer if (!c.equals(Color.RED)) { 586495Sspeer throw new RuntimeException("Test Failed"); 596495Sspeer } 606495Sspeer } finally { 6111304SJanie.Lu@Sun.COM SwingUtilities.invokeAndWait(new Runnable() { 6211304SJanie.Lu@Sun.COM @Override 6311304SJanie.Lu@Sun.COM public void run() { 6411304SJanie.Lu@Sun.COM background.dispose(); 6511304SJanie.Lu@Sun.COM window.dispose(); 6611304SJanie.Lu@Sun.COM } 6711304SJanie.Lu@Sun.COM }); 686495Sspeer } 696495Sspeer } 7011304SJanie.Lu@Sun.COM 7111304SJanie.Lu@Sun.COM private static void createUI() throws Exception { 726495Sspeer SwingUtilities.invokeAndWait(new Runnable() { 736495Sspeer @Override 746495Sspeer public void run() { 756495Sspeer background = new Frame(); 766495Sspeer background.setUndecorated(true); 776495Sspeer background.setBackground(Color.blue); 786495Sspeer background.setSize(300, 300); 796495Sspeer background.setLocation(100, 100); 806495Sspeer background.setVisible(true); 816495Sspeer window = new Window(background); 826495Sspeer window.setBackground(Color.red); 836495Sspeer window.add(new Panel(), BorderLayout.CENTER); 846495Sspeer window.setLocation(200, 200); 856495Sspeer window.setSize(100, 100); 866495Sspeer Area a = new Area(); 876495Sspeer a.add(new Area(new Rectangle2D.Double(0, 0, 100, 100))); 886495Sspeer window.setShape(a); 896495Sspeer window.setVisible(true); 906495Sspeer window.toFront(); 916495Sspeer } 9211304SJanie.Lu@Sun.COM }); 9311304SJanie.Lu@Sun.COM } 9411304SJanie.Lu@Sun.COM} 9511304SJanie.Lu@Sun.COM