diff -BburN swing/src/main/java/common/javax/swing/SwingUtilities.java swing.new/src/main/java/common/javax/swing/SwingUtilities.java --- swing/src/main/java/common/javax/swing/SwingUtilities.java 2007-10-30 12:21:57.969353000 +0800 +++ swing.new/src/main/java/common/javax/swing/SwingUtilities.java 2007-10-30 12:22:03.095394600 +0800 @@ -401,6 +401,7 @@ while (child != null && child instanceof Container) { parent = child; child = parent.getComponentAt(x, y); + if(parent == child) break; } return (child != null) ? child : parent;