--- old/src/java.desktop/share/classes/javax/print/ServiceUI.java 2016-02-18 11:11:31.432899389 +0530 +++ new/src/java.desktop/share/classes/javax/print/ServiceUI.java 2016-02-18 11:11:31.200783389 +0530 @@ -211,18 +211,24 @@ } Rectangle dlgBounds = dialog.getBounds(); - // get union of all GC bounds - GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); - GraphicsDevice[] gs = ge.getScreenDevices(); - for (int j=0; j gcBounds.x) { + x = (gcBounds.x + gcBounds.width) - dlgBounds.width; + } else { + x = gcBounds.x; + } + if ((gcBounds.y + gcBounds.height - dlgBounds.height) > gcBounds.y) { + y = (gcBounds.y + gcBounds.height) - dlgBounds.height; + } else { + y = gcBounds.y; + } + dialog.setBounds(x, y, dlgBounds.width, dlgBounds.height); } dialog.show();