private static Point fixPopupLocation(final Component contents, final int x, final int y) { if (!(contents instanceof JToolTip)) return new Point(x, y); final PointerInfo info; try { info = MouseInfo.getPointerInfo(); } catch (InternalError e) { // http://www.jetbrains.net/jira/browse/IDEADEV-21390 // may happen under Mac OSX 10.5 return new Point(x, y); } int deltaY = 0; if (info != null) { final Point mouse = info.getLocation(); deltaY = mouse.y - y; } final Dimension size = contents.getPreferredSize(); final Rectangle rec = new Rectangle(new Point(x, y), size); ScreenUtil.moveRectangleToFitTheScreen(rec); if (rec.y < y) { rec.y += deltaY; } return rec.getLocation(); }
/** * Act - do whatever the Desicion wants to do. This method is called whenever the 'Act' or 'Run' * button gets pressed in the environment. */ public void act() { MouseInfo mouse = Greenfoot.getMouseInfo(); if (Greenfoot.mouseClicked(this)) { if (mouse.getButton() == 3) // right-click { construyeDialogo(); } else { if (((WActividades) getWorld()).mousePresionado) { ((WActividades) getWorld()).agregaPunto(getX(), getY(), true); ((WActividades) getWorld()).mousePresionado = false; } } } else if (Greenfoot.mousePressed(this)) { ((WActividades) getWorld()).agregaPunto(getX(), getY(), false); ((WActividades) getWorld()).mousePresionado = true; } }
@Override protected void paintChildren(Graphics g) { autoscale(); super.paintChildren(g); if (IGV.getInstance().isRulerEnabled()) { int start = MouseInfo.getPointerInfo().getLocation().x - getLocationOnScreen().x; g.setColor(Color.BLACK); g.drawLine(start, 0, start, getHeight()); } }