boolean (@NotNull Component component, Class<?> @NotNull ... types) { for (Class<?> type : types) { if (type.isAssignableFrom(component.getClass())) { return true; } } if (component instanceof Container container) { for (int i = 0; i < container.getComponentCount(); i++) { if (hasComponentOfType(container.getComponent(i), types)) { return true; } } } return false; }