Java Code Examples for java.awt.Rectangle#getX()

The following examples show how to use java.awt.Rectangle#getX() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
@Override
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
	int x = (int) thumbBounds.getX();
	int y = (int) thumbBounds.getY();
	int w = (int) thumbBounds.getWidth();
	int h = (int) thumbBounds.getHeight();

	if (c.isEnabled() && w > 0 && h > 0) {
		if (this.scrollbar.getOrientation() == Adjustable.HORIZONTAL) {
			h -= 1;
			y++;
			drawHorizThumb(g, x, y, w, h);
		} else {
			w -= 1;
			x++;
			drawVertThumb(g, x, y, w, h);
		}
	}
}
 
Example 2
/**
 * Recalculate the Window position
 *
 * @param window the window
 * @param position the position of the window
 */
private void recalculateWindowPosition(Window window, int position) {
	Rectangle parentBounds = parent.getBounds();
	parentBounds.setLocation(parent.getLocationOnScreen());
	int rightX = (int) (parentBounds.getX() + parent.getWidth() - DEFAULT_RIGHT_MARGIN);
	// this was going crazy sometimes
	int topY = (int) parentBounds.getY();
	int yOffset = windowYOffset.get(position);
	// Recalculate the window positions
	window.setLocation(rightX - window.getWidth(), topY + yOffset - window.getHeight());
	// Check if the Window fits into the parents bounds
	if (!parentBounds.contains(window.getBounds())) {
		// back into the bubbleStack
		window.setVisible(false);
		bubbleStack.addFirst(window);
		freeSpaces.add(windowPosition.remove(window));
		window.removeWindowListener(closeListener);
	}
}
 
Example 3
private void renderInventory(Graphics2D graphics)
{
	Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY);
	if (inventoryWidget == null || inventoryWidget.isHidden())
	{
		return;
	}

	for (WidgetItem item : inventoryWidget.getWidgetItems())
	{
		Rectangle slotBounds = item.getCanvasBounds();

		String idText = "" + item.getId();
		FontMetrics fm = graphics.getFontMetrics();
		Rectangle2D textBounds = fm.getStringBounds(idText, graphics);

		int textX = (int) (slotBounds.getX() + (slotBounds.getWidth() / 2) - (textBounds.getWidth() / 2));
		int textY = (int) (slotBounds.getY() + (slotBounds.getHeight() / 2) + (textBounds.getHeight() / 2));

		graphics.setColor(new Color(255, 255, 255, 65));
		graphics.fill(slotBounds);

		graphics.setColor(Color.BLACK);
		graphics.drawString(idText, textX + 1, textY + 1);
		graphics.setColor(YELLOW);
		graphics.drawString(idText, textX, textY);
	}
}
 
Example 4
protected void paintDrawnBorders(java.awt.Graphics2D g) {
  for (Rectangle r : vDrawnBorders) {
    double x = r.getX();
    double y = r.getY();
    double w = r.getWidth();
    double h = r.getHeight();
    x = x + (w / 4);
    y = y + (h / 4);
    w = w / 2;
    h = h / 2;
    g.setColor(EditableShapeConstants.DRAWN_BORDER_COLOR);
    g.fillRect((int) x, (int) y, (int) w, (int) h);
  }
}
 
Example 5
Source Project: hifive-pitalium   File: SimilarityUtils.java    License: Apache License 2.0 5 votes vote down vote up
private static CalcSimilarityPrep prepareCalcSimilarity(BufferedImage expectedImage, BufferedImage actualImage,
		Rectangle rectangle, Offset offset) {
	// set range to be checked
	int minWidth = Math.min(expectedImage.getWidth(), actualImage.getWidth());
	int minHeight = Math.min(expectedImage.getHeight(), actualImage.getHeight());
	int actualX = (int) rectangle.getX();
	int actualY = (int) rectangle.getY();
	int actualWidth = (int) rectangle.getWidth();
	int actualHeight = (int) rectangle.getHeight();
	int maxMove;
	if (offset == null) {
		maxMove = ComparisonParameterDefaults.getMaxMove();
		offset = new Offset(0, 0);
	} else {
		maxMove = 0;
	}
	int leftMove = Math.min(maxMove, actualX - 1);
	int rightMove = Math.min(maxMove, minWidth - (actualX + actualWidth));
	int topMove = Math.min(maxMove, actualY - 1);
	int downMove = Math.min(maxMove, minHeight - (actualY + actualHeight));
	int expectedX = actualX - (leftMove + 1) - offset.getX();
	int expectedY = actualY - (topMove + 1) - offset.getY();
	int expectedWidth = actualWidth + leftMove + rightMove + 1;
	int expectedHeight = actualHeight + topMove + downMove + 1;

	// initialize sub-image.
	Rectangle entireFrame = new Rectangle(expectedX, expectedY, expectedWidth, expectedHeight);

	CalcSimilarityPrep prep = new CalcSimilarityPrep(expectedWidth, expectedHeight, actualWidth, actualHeight,
			maxMove, rightMove, leftMove, downMove, topMove, null, null, null, null, null, null);

	return prepareCalcSimilarity(expectedImage, actualImage, entireFrame, rectangle, prep);
}
 
Example 6
public Point getClickPoint(@NotNull Rectangle rect)
{
	final int x = (int) (rect.getX() + getRandomIntBetweenRange((int) rect.getWidth() / 6 * -1, (int) rect.getWidth() / 6) + rect.getWidth() / 2);
	final int y = (int) (rect.getY() + getRandomIntBetweenRange((int) rect.getHeight() / 6 * -1, (int) rect.getHeight() / 6) + rect.getHeight() / 2);

	return new Point(x, y);
}
 
Example 7
private void renderInventory(Graphics2D graphics)
{
	Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY);
	if (inventoryWidget == null || inventoryWidget.isHidden())
	{
		return;
	}

	for (WidgetItem item : inventoryWidget.getWidgetItems())
	{
		Rectangle slotBounds = item.getCanvasBounds();

		String idText = "" + item.getId();
		FontMetrics fm = graphics.getFontMetrics();
		Rectangle2D textBounds = fm.getStringBounds(idText, graphics);

		int textX = (int) (slotBounds.getX() + (slotBounds.getWidth() / 2) - (textBounds.getWidth() / 2));
		int textY = (int) (slotBounds.getY() + (slotBounds.getHeight() / 2) + (textBounds.getHeight() / 2));

		graphics.setColor(new Color(255, 255, 255, 65));
		graphics.fill(slotBounds);

		graphics.setColor(Color.BLACK);
		graphics.drawString(idText, textX + 1, textY + 1);
		graphics.setColor(YELLOW);
		graphics.drawString(idText, textX, textY);
	}
}
 
Example 8
private void renderWiw(Graphics2D g, Object wiw, Color color)
{
	g.setColor(color);

	if (wiw instanceof WidgetItem)
	{
		WidgetItem wi = (WidgetItem) wiw;
		Rectangle bounds = wi.getCanvasBounds();
		g.draw(bounds);

		String text = wi.getId() + "";
		FontMetrics fm = g.getFontMetrics();
		Rectangle2D textBounds = fm.getStringBounds(text, g);

		int textX = (int) (bounds.getX() + (bounds.getWidth() / 2) - (textBounds.getWidth() / 2));
		int textY = (int) (bounds.getY() + (bounds.getHeight() / 2) + (textBounds.getHeight() / 2));

		g.setColor(Color.BLACK);
		g.drawString(text, textX + 1, textY + 1);
		g.setColor(Color.ORANGE);
		g.drawString(text, textX, textY);
	}
	else
	{
		Widget w = (Widget) wiw;
		g.draw(w.getBounds());
	}
}
 
Example 9
/**
 * Retuns points which can be used to click on path.
 *
 * @param path a tree path to click on.
 * @return a Point in component's coordinate system.
 */
public Point getPointToClick(TreePath path) {
    if (path != null) {
        Rectangle rect = getPathBounds(path);
        if (rect != null) {
            return (new Point((int) (rect.getX() + rect.getWidth() / 2),
                    (int) (rect.getY() + rect.getHeight() / 2)));
        } else {
            throw (new NoSuchPathException(path));
        }
    } else {
        throw (new NoSuchPathException());
    }
}
 
Example 10
Source Project: swcv   File: FontTests.java    License: MIT License 5 votes vote down vote up
private void drawTextInBox(Graphics2D g2, String text, Rectangle2D positionOnScreen)
{
    Font font = FontUtils.getFont();
    FontRenderContext frc = g2.getFontRenderContext();

    //bounding box of the word
    GlyphVector gv2 = font.layoutGlyphVector(frc, text.toCharArray(), 0, text.length(), Font.LAYOUT_LEFT_TO_RIGHT);
    Rectangle bb = gv2.getPixelBounds(frc, 0.0f, 0.0f);

    //find correct font size
    float scaleX = (float)(positionOnScreen.getWidth() / bb.getWidth());
    float scaleY = (float)(positionOnScreen.getHeight() / bb.getHeight());

    //get a new position for the text
    float x = (float)(positionOnScreen.getX() - bb.getX() * scaleX);
    float y = (float)(positionOnScreen.getY() - bb.getY() * scaleY);

    //preparing font
    AffineTransform at = new AffineTransform(scaleX, 0, 0, scaleY, 0, 0);
    Font deriveFont = font.deriveFont(at);
    g2.setFont(deriveFont);
    g2.setColor(Color.black);

    //draw the label
    GlyphVector gv = deriveFont.layoutGlyphVector(frc, text.toCharArray(), 0, text.length(), Font.LAYOUT_LEFT_TO_RIGHT);
    g2.drawGlyphVector(gv, x, y);
    g2.draw(positionOnScreen);
}
 
Example 11
@Override
public Dimension render(Graphics2D graphics)
{
	if (plugin.getLastDamage() <= 0)
	{
		return null;
	}

	final Widget healthOrb = client.getWidget(WidgetInfo.MINIMAP_HEALTH_ORB);

	if (healthOrb == null || healthOrb.isHidden())
	{
		return null;
	}

	final Rectangle bounds = healthOrb.getBounds();

	if (bounds.getX() <= 0)
	{
		return null;
	}

	final Point mousePosition = client.getMouseCanvasPosition();

	if (bounds.contains(mousePosition.getX(), mousePosition.getY()))
	{
		tooltipManager.add(new Tooltip(plugin.createTooltip()));
	}

	return null;
}
 
Example 12
Source Project: render   File: TileSpec.java    License: GNU General Public License v2.0 5 votes vote down vote up
/**
 * The bounding box is only valid for a given meshCellSize, i.e. setting it
 * independently of the meshCellSize is potentially harmful.
 *
 * @param  box  coordinates that define the bounding box for this tile.
 */
public void setBoundingBox(final Rectangle box, final double meshCellSize) {
    this.minX = box.getX();
    this.minY = box.getY();
    this.maxX = box.getMaxX();
    this.maxY = box.getMaxY();
    this.meshCellSize = meshCellSize;
}
 
Example 13
private void drawRegionOverlay(Graphics2D graphics)
{
	RenderOverview ro = client.getRenderOverview();
	Widget map = client.getWidget(WidgetInfo.WORLD_MAP_VIEW);
	Float pixelsPerTile = ro.getWorldMapZoom();

	if (map == null)
	{
		return;
	}

	Rectangle worldMapRect = map.getBounds();
	graphics.setClip(worldMapRect);

	int widthInTiles = (int) Math.ceil(worldMapRect.getWidth() / pixelsPerTile);
	int heightInTiles = (int) Math.ceil(worldMapRect.getHeight() / pixelsPerTile);

	Point worldMapPosition = ro.getWorldMapPosition();

	// Offset in tiles from anchor sides
	int yTileMin = worldMapPosition.getY() - heightInTiles / 2;
	int xRegionMin = (worldMapPosition.getX() - widthInTiles / 2) & REGION_TRUNCATE;
	int xRegionMax = ((worldMapPosition.getX() + widthInTiles / 2) & REGION_TRUNCATE) + REGION_SIZE;
	int yRegionMin = (yTileMin & REGION_TRUNCATE);
	int yRegionMax = ((worldMapPosition.getY() + heightInTiles / 2) & REGION_TRUNCATE) + REGION_SIZE;
	int regionPixelSize = (int) Math.ceil(REGION_SIZE * pixelsPerTile);

	for (int x = xRegionMin; x < xRegionMax; x += REGION_SIZE)
	{
		for (int y = yRegionMin; y < yRegionMax; y += REGION_SIZE)
		{
			graphics.setColor(WHITE_TRANSLUCENT);

			int yTileOffset = -(yTileMin - y);
			int xTileOffset = x + widthInTiles / 2 - worldMapPosition.getX();

			int xPos = ((int) (xTileOffset * pixelsPerTile)) + (int) worldMapRect.getX();
			int yPos = (worldMapRect.height - (int) (yTileOffset * pixelsPerTile)) + (int) worldMapRect.getY();
			// Offset y-position by a single region to correct for drawRect starting from the top
			yPos -= regionPixelSize;

			graphics.drawRect(xPos, yPos, regionPixelSize, regionPixelSize);

			int regionId = ((x >> 6) << 8) | (y >> 6);
			String regionText = String.valueOf(regionId);
			FontMetrics fm = graphics.getFontMetrics();
			Rectangle2D textBounds = fm.getStringBounds(regionText, graphics);
			int labelWidth = (int) textBounds.getWidth() + 2 * LABEL_PADDING;
			int labelHeight = (int) textBounds.getHeight() + 2 * LABEL_PADDING;
			graphics.fillRect(xPos, yPos, labelWidth, labelHeight);
			graphics.setColor(Color.BLACK);
			graphics.drawString(regionText, xPos + LABEL_PADDING, yPos + (int) textBounds.getHeight() + LABEL_PADDING);
		}
	}
}
 
Example 14
protected void paintComponent(Graphics g) {
    long startTime = System.nanoTime();
    // prevVX is set to -10000 when first enabled
    if (useCopyArea && prevVX > -9999) {
        // Most of this code determines the proper areas to copy and clip
        int scrollX = viewX - prevVX;
        int scrollY = viewY - prevVY;
        int copyFromY, copyFromX;
        int clipFromY, clipFromX;
        if (scrollX == 0) {
            // vertical scroll
            if (scrollY < 0) {
                copyFromY = 0;
                clipFromY = 0;
            } else {
                copyFromY = scrollY;
                clipFromY = getHeight() - scrollY;
            }
            // copy the old content, set the clip to the new area
            g.copyArea(0, copyFromY, getWidth(), getHeight() - Math.abs(scrollY),
                    0, -scrollY);
            g.setClip(0, clipFromY, getWidth(), Math.abs(scrollY));
        } else {
            // horizontal scroll
            if (scrollX < 0) {
                copyFromX = 0;
                clipFromX = 0;
            } else {
                copyFromX = scrollX;
                clipFromX = getWidth() - scrollX;
            }
            // copy the old content, set the clip to the new area
            g.copyArea(copyFromX, 0, getWidth() - Math.abs(scrollX), 
                    getHeight(), -scrollX, 0);
            g.setClip(clipFromX, 0, Math.abs(scrollX), getHeight());
        }
    }
    // Track previous view position for next scrolling operation
    prevVX = viewX;
    prevVY = viewY;
    // Get the clip in case we need it later
    Rectangle clipRect = g.getClip().getBounds();
    int clipL = (int)(clipRect.getX());
    int clipT = (int)(clipRect.getY());
    int clipR = (int)(clipRect.getMaxX());
    int clipB = (int)(clipRect.getMaxY());
    g.setColor(Color.WHITE);
    g.fillRect(clipL, clipT, (int)clipRect.getWidth(), (int)clipRect.getHeight());
    for (int column = 0; column < 256; ++column) {
        int x = column * (SMILEY_SIZE + PADDING) - viewX;
        if (useClip) {
            if (x > clipR || (x + (SMILEY_SIZE + PADDING)) < clipL) {
                // trivial reject; outside to the left or right
                continue;
            }
        }
        for (int row = 0; row < 256; ++row) {
            int y = row * (SMILEY_SIZE + PADDING) - viewY;
            if (useClip) {
                if (y > clipB || (y + (SMILEY_SIZE + PADDING)) < clipT) {
                    // trivial reject; outside to the top or bottom
                    continue;
                }
            }
            Color faceColor = new Color(column, row, 0);
            drawSmiley(g, faceColor, x, y);
        }
    }
    long stopTime = System.nanoTime();
    System.out.println("Painted in " + 
            ((stopTime - startTime) / 1000000) + " ms");
}
 
Example 15
public RotatedRectangle(Rectangle r, double theta) {
    this(r.getX(), r.getY(), r.getWidth(), r.getHeight(), theta);
}
 
Example 16
@Override
public int getCenterXForClick() {
    Rectangle rect = getVisibleRect();
    return ((int) rect.getX()
            + (int) rect.getWidth() / 2);
}
 
Example 17
Source Project: pgptool   File: UiUtils.java    License: GNU General Public License v3.0 4 votes vote down vote up
private static String format(Rectangle bounds) {
	return "x=" + (int) bounds.getX() + ",y=" + (int) bounds.getY() + ",w=" + (int) bounds.getWidth() + ",h="
			+ (int) bounds.getHeight();
}
 
Example 18
@Override
public Dimension render(Graphics2D graphics)
{
	final Widget xpOrb = client.getWidget(WidgetInfo.MINIMAP_QUICK_PRAYER_ORB);
	if (xpOrb == null || xpOrb.isHidden())
	{
		return null;
	}

	final Rectangle bounds = xpOrb.getBounds();
	if (bounds.getX() <= 0)
	{
		return null;
	}

	final Point mousePosition = client.getMouseCanvasPosition();

	if (config.showPrayerStatistics() && bounds.contains(mousePosition.getX(), mousePosition.getY()))
	{
		final StringBuilder sb = new StringBuilder();

		if (config.replaceOrbText())
		{
			sb.append("Prayer points remaining: ").append(client.getBoostedSkillLevel(Skill.PRAYER));
		}
		else
		{
			sb.append("Time Remaining: ").append(plugin.getEstimatedTimeRemaining(false));
		}

		sb.append("</br>").append("Prayer Bonus: ").append(plugin.getPrayerBonus());
		tooltipManager.add(new Tooltip(sb.toString()));
	}

	if (!config.showPrayerDoseIndicator() || !hasPrayerRestore)
	{
		return null;
	}

	final int currentPrayer = client.getBoostedSkillLevel(Skill.PRAYER);
	final int maxPrayer = client.getRealSkillLevel(Skill.PRAYER);

	final int prayerPointsMissing = maxPrayer - currentPrayer;
	if (prayerPointsMissing <= 0)
	{
		return null;
	}

	final double dosePercentage = hasHolyWrench ? .27 : .25;
	final int basePointsRestored = (int) Math.floor(maxPrayer * dosePercentage);

	final int pointsRestored = basePointsRestored + 7 + bonusPrayer;

	if (prayerPointsMissing < pointsRestored)
	{
		return null;
	}

	// Purposefully using height twice here as the bounds of the prayer orb includes the number sticking out the side
	final int orbInnerSize = (int) bounds.getHeight();

	final int orbInnerX = (int) (bounds.getX() + 24); // x pos of the inside of the prayer orb
	final int orbInnerY = (int) (bounds.getY() - 1); // y pos of the inside of the prayer orb

	final long timeSinceLastTick = Duration.between(startOfLastTick, Instant.now()).toMillis();

	final float tickProgress = Math.min(timeSinceLastTick / PULSE_TIME, 1); // Cap between 0 and 1
	final double t = tickProgress * Math.PI; // Convert to 0 - pi

	graphics.setColor(ColorUtil.colorLerp(START_COLOR, END_COLOR, Math.sin(t)));
	graphics.setStroke(new BasicStroke(2));
	graphics.drawOval(orbInnerX, orbInnerY, orbInnerSize, orbInnerSize);

	return new Dimension((int) bounds.getWidth(), (int) bounds.getHeight());
}
 
Example 19
/**
 * Gets the upper-left coordinate of where the widget is being drawn
 * on the canvas, accounting for drag.
 *
 * @return the upper-left coordinate of where this widget is drawn
 */
public Point getCanvasLocation()
{
	Rectangle bounds = getCanvasBounds();
	return new Point((int) bounds.getX(), (int) bounds.getY());
}
 
Example 20
/**
 * Returns a point at the center of the cell rectangle.
 *
 * @param row a row index
 * @param column a column index
 * @return a Point in component's coordinate system.
 */
public Point getPointToClick(int row, int column) {
    Rectangle rect = getCellRect(row, column, false);
    return (new Point((int) (rect.getX() + rect.getWidth() / 2),
            (int) (rect.getY() + rect.getHeight() / 2)));
}