int (@NotNull AbstractButton button, @NotNull Dimension size, @Nullable Icon buttonIcon) { String text = button.getText(); Rectangle viewRect = new Rectangle(); Rectangle iconRect = new Rectangle(); Rectangle textRect = new Rectangle(); Insets i = button.getInsets(); viewRect.y = i.top; viewRect.width = size.width - (i.right + viewRect.x); viewRect.height = size.height - (i.bottom + viewRect.y); SwingUtilities.layoutCompoundLabel( button, button.getFontMetrics(button.getFont()), text, buttonIcon, button.getVerticalAlignment(), button.getHorizontalAlignment(), button.getVerticalTextPosition(), button.getHorizontalTextPosition(), viewRect, iconRect, textRect, text == null ? 0 : button.getIconTextGap()); return textRect.x; }