Java 2D clip area to shape

Posted by user2923880 on Stack Overflow See other posts from Stack Overflow or by user2923880
Published on 2013-10-26T21:50:35Z Indexed on 2013/10/26 21:53 UTC
Read the original article Hit count: 271

Filed under:
|

I'm quite new to graphics in java and I'm trying to create a shape that clips to the bottom of another shape. Here is an example of what I'm trying to achieve:

http://i.stack.imgur.com/g3jKJ.png

Where the white line at the base of the shape is the sort of clipped within the round edges. The current way I am doing this is like so:

g2.setColor(gray);
Shape shape = getShape(); //round rectangle
g2.fill(shape);
Rectangle rect = new Rectangle(shape.getBounds().x, shape.getBounds().y, width, height - 3);
Area area = new Area(shape);
area.subtract(new Area(rect));
g2.setColor(white);
g2.fill(area);

I'm still experimenting with the clip methods but I can't seem to get it right. Is this current method ok (performance wise, since the component repaints quite often) or is there a more efficient way?

Thanks in advance.

© Stack Overflow or respective owner

Related posts about java

Related posts about java-2d

  • java 2D and swing

    as seen on Stack Overflow - Search for 'Stack Overflow'
    Hi, I have trouble understanding a fundamental concept in Java 2D. To give a specific example: One can customize a swing component via implementing it's own version of the method paintComponent(Graphics g) Graphics is available to the body of the method. Question: What is exactly this Graphics… >>> More

  • Java 2D Drawing Framework

    as seen on Stack Overflow - Search for 'Stack Overflow'
    Currently, I am using JHotDraw https://sourceforge.net/projects/jhotdraw/ as Figures Drawing Framework in my application. JHotDraw is a two-dimensional graphics framework for structured drawing editors that is written in Java. It is based on Erich Gamma's JHotDraw, which is copyright 1996… >>> More

  • Java 2D Resize

    as seen on Stack Overflow - Search for 'Stack Overflow'
    I have some old Java 2D code I want to reuse, but was wondering, is this the best way to get the highest quality images? public static BufferedImage getScaled(BufferedImage imgSrc, Dimension dim) { // This code ensures that all the pixels in the image are loaded. Image scaled = imgSrc.getScaledInstance( dim… >>> More

  • Java 2D Game Frameworks

    as seen on Stack Overflow - Search for 'Stack Overflow'
    I have been looking at frameworks for writing 2D games in Java - part of a growing desire to rediscover my roots in writing those simple but addictive video games. I have googled and found some possibilities, but it's hard to judge which is best without investing significant time in each. Does anyone… >>> More

  • Java 2D turn-based game programming: handle 2 mouse clicks per player

    as seen on Stack Overflow - Search for 'Stack Overflow'
    So suppose I'm developing a chess-like program using Java's Swing. I added a MouseListener to handle user input. To make a move the user must click a valid piece and then click a valid place. What's the best way to track the 2 mouse clicks in a turn? I'm thinking in use some kind of variable to record… >>> More