@Override public Point paint(Graphics2D g2, Point p) { Position = p; Font tmp = g2.getFont(); g2.setFont(new Font("SansSerif", Font.PLAIN, 18)); Rectangle2D NBounds = g2.getFont().getStringBounds(Integer.toString(currentNumber), g2.getFontRenderContext()); g2.draw( Arrow2D.getArrow( new Point( (int) (getPosition().getX() + NBounds.getCenterX()), (int) (getPosition().getY() - NBounds.getHeight())), new Point( (int) (getPosition().getX() + NBounds.getCenterX()), (int) getPosition().getY()), 8, 30)); g2.drawString( Integer.toString(currentNumber), (float) Position.getX(), (float) (Position.getY() - NBounds.getHeight())); g2.setFont(tmp); ShapeSize = new Rectangle2D.Double(0, 0, NBounds.getWidth(), NBounds.getHeight() + NBounds.getHeight()); return new Point((int) (p.getX() + ShapeSize.getWidth()), (int) p.getY()); }
@Override public boolean isPointBelongNode(Point p) { if ((p.getX() >= Position.getX()) && (p.getX() <= Position.getX() + ShapeSize.getWidth()) && (p.getY() <= Position.getY()) && (p.getY() >= Position.getY() - ShapeSize.getHeight())) return true; else return false; }
@Override public Point paint(Graphics2D g2, Point p) { Position = p; g2.drawString(Name, (float) Position.getX(), (float) Position.getY()); ShapeSize = g2.getFont().getStringBounds(Name, g2.getFontRenderContext()); return new Point((int) (p.getX() + ShapeSize.getWidth()), (int) p.getY()); }