В последних версиях Java необходимо вызывать setContentAreaFilled (false), чтобы полностью удалить границу. Добавьте пустую рамку для некоторого отступа:
button.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
button.setContentAreaFilled(false);