package dragNdrop; import java.awt.Point; import java.awt.Rectangle; import java.util.List; import javax.swing.JComponent; import javax.swing.SwingUtilities; import com.google.common.collect.ImmutableList; public abstract class AbstractDropManager implements DropListener { public AbstractDropManager() { mComponents = ImmutableList.of(); } protected JComponent isInTarget(Point point) { for (JComponent component : mComponents) { Rectangle bounds = component.getBounds(); Point location = component.getLocation(); SwingUtilities.convertPointToScreen(location, component.getParent()); bounds.x = location.x; bounds.y = location.y; if (bounds.contains(point)) return component; } return null; } public void setComponentList(List<? extends JComponent> components) { mComponents = components; } public abstract void dropped(DropEvent event, boolean fromDisplayBoard); protected List<? extends JComponent> mComponents; }