Предполагая, что событий mouseEntered
и mouseExited
недостаточно (это было для меня, поскольку я хотел избежать дополнительных вызовов на mouseExited
, когда курсор мыши вводил границы кнопки на панели), я пришел с этой короткой проверкой, чтобы добавить в начало моих mouseEntered
и mouseExited
обработчиков событий:
public static boolean isMouseWithinComponent(Component c)
{
Point mousePos = MouseInfo.getPointerInfo().getLocation();
Rectangle bounds = c.getBounds();
bounds.setLocation(c.getLocationOnScreen());
return bounds.contains(mousePos);
}