Well round one is done (yeah I didn't think that would take long) and it works perfectly. Performance is 'less than stellar', but it is within accepted norms for a Java application. I'll have to post to the Java2D list and find out what the JVM is actually doing with that clipping region and whether or not that is something that will get accelerated in the new OpenGL pipeline. Then again, perhaps someone from Apple could chime in about how Graphics2D.setClip() is implemented under the covers.
To be honest I could probably get away with this, but I've never been one to slack off from find the right answer so I'll press on in the morning (3AM here). OH! And for all of those helping me out and giving me suggestions - THANK YOU! Wanted to make sure I said it before I moved on and starting testing the other results. > Graphics2D g2d = (Graphics2D) g; > > // draw the foreground layer > // > Area clipArea = new Area( this.getBounds() ); > > Iterator nodeIterator = widgets.iterator(); > while (nodeIterator.hasNext()) > { > WidgetIF widget = (WidgetIF) nodeIterator.next(); > > widget.draw( g2d ); > > clipArea.subtract( new Area( widget.getBounds() ) ); > } > > > g2d.setClip( clipArea ); > > > // draw all of the links > Iterator linkIterator = links.iterator(); > while (linkIterator.hasNext()) > { > WidgetIF widget = (WidgetIF) linkIterator.next(); > > widget.draw( g2d ); > } =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".