/** * DOCUMENT ME! * * @param g2 DOCUMENT ME! * @param c DOCUMENT ME! */ public void paintChildren(Graphics2D g2, Component c) { if ((c.getChildren() == null) || c.getChildren().isEmpty()) { return; } Rectangle bounds = c.getBounds(); Graphics2D gcopy = (Graphics2D) g2.create(); gcopy.translate(bounds.x, bounds.y); Insets padding = c.getPadding(); if (padding != null) { gcopy.translate(padding.left, padding.top); } ArrayList childrenCopy = (ArrayList) c.getChildren(); Comparator comparator = ComponentComparator.getInstance(); Collections.sort(childrenCopy, comparator); Iterator iterator = childrenCopy.iterator(); while (iterator.hasNext()) { Component component = (Component) iterator.next(); paintChild(gcopy, component); } gcopy.dispose(); }