/** * Positions the specified dialog at a position relative to its parent. * * @param dialog the dialog to be positioned. * @param horizontalPercent the relative location. * @param verticalPercent the relative location. */ public static void positionDialogRelativeToParent(final Dialog dialog, final double horizontalPercent, final double verticalPercent) { final Dimension d = dialog.getSize(); final Container parent = dialog.getParent(); final Dimension p = parent.getSize(); final int baseX = parent.getX() - d.width; final int baseY = parent.getY() - d.height; final int w = d.width + p.width; final int h = d.height + p.height; int x = baseX + (int) (horizontalPercent * w); int y = baseY + (int) (verticalPercent * h); // make sure the dialog fits completely on the screen... final Rectangle s = getMaximumWindowBounds(); x = Math.min(x, (s.width - d.width)); x = Math.max(x, 0); y = Math.min(y, (s.height - d.height)); y = Math.max(y, 0); dialog.setBounds(x + s.x, y + s.y, d.width, d.height); }
/** * Positions the specified dialog at a position relative to its parent. * * @param dialog the dialog to be positioned. * @param horizontalPercent the relative location. * @param verticalPercent the relative location. */ public static void positionDialogRelativeToParent(final Dialog dialog, final double horizontalPercent, final double verticalPercent) { final Dimension d = dialog.getSize(); final Container parent = dialog.getParent(); final Dimension p = parent.getSize(); final int baseX = parent.getX() - d.width; final int baseY = parent.getY() - d.height; final int w = d.width + p.width; final int h = d.height + p.height; int x = baseX + (int) (horizontalPercent * w); int y = baseY + (int) (verticalPercent * h); // make sure the dialog fits completely on the screen... final Rectangle s = getMaximumWindowBounds(); x = Math.min(x, (s.width - d.width)); x = Math.max(x, 0); y = Math.min(y, (s.height - d.height)); y = Math.max(y, 0); dialog.setBounds(x + s.x, y + s.y, d.width, d.height); }
private void ensurePreferredSize() { if( null != lastBounds ) { return; //we remember the last window position } //we remember the last window position Dimension sz = dialog.getSize(); Dimension pref = dialog.getPreferredSize(); if (pref.height == 0) { pref.height = SIZE_PREFERRED_HEIGHT; } if (pref.width == 0) { pref.width = SIZE_PREFERRED_WIDTH; } if (!sz.equals(pref)) { dialog.setSize(pref.width, pref.height); dialog.validate(); dialog.repaint(); } }
/** * Positions the specified dialog at a position relative to its parent. * * @param dialog the dialog to be positioned. * @param horizontalPercent the relative location. * @param verticalPercent the relative location. */ public static void positionDialogRelativeToParent(Dialog dialog, double horizontalPercent, double verticalPercent) { Container parent = dialog.getParent(); if (parent == null) { centerFrameOnScreen(dialog); return; } Dimension d = dialog.getSize(); Dimension p = parent.getSize(); int baseX = parent.getX(); int baseY = parent.getY(); int x = baseX + (int) (horizontalPercent * p.width); int y = baseY + (int) (verticalPercent * p.height); // make sure the dialog fits completely on the screen... Rectangle s = parent.getGraphicsConfiguration().getBounds(); Rectangle r = new Rectangle(x, y, d.width, d.height); dialog.setBounds(r.intersection(s)); }
/** * Positions the specified dialog at a position relative to its parent. * * @param dialog the dialog to be positioned. * @param horizontalPercent the relative location. * @param verticalPercent the relative location. */ public static void positionDialogRelativeToParent(final Dialog dialog, final double horizontalPercent, final double verticalPercent) { final Container parent = dialog.getParent(); if (parent == null) { centerFrameOnScreen(dialog); return; } final Dimension d = dialog.getSize(); final Dimension p = parent.getSize(); final int baseX = parent.getX(); final int baseY = parent.getY(); final int x = baseX + (int) (horizontalPercent * p.width); final int y = baseY + (int) (verticalPercent * p.height); // make sure the dialog fits completely on the screen... final Rectangle s = parent.getGraphicsConfiguration().getBounds(); final Rectangle r = new Rectangle(x, y, d.width, d.height); dialog.setBounds(r.intersection(s)); }
final Dimension d = dialog.getSize(); final Dimension p = parent.getSize();
final Dimension d = dialog.getSize(); final Dimension p = parent.getSize();
Point loc = parentWindow.getLocation(); Dimension parentSize = parentWindow.getSize(); Dimension size = this._dialog.getSize(); loc.x += (parentSize.width - size.width) / 2; loc.y += (parentSize.height - size.height) / 2;