Установите разрыв между началом JLabel и значком

#java #swing #jbutton

#java #качать #jbutton

Вопрос:

У меня есть Java Swing form и JLabel, подобные этому:

введите описание изображения здесь

Что мне нужно сделать, это вставить пробел в начало JLabel:

введите описание изображения здесь

Поэтому он не будет прилипать к линии границы.

Примечание 1: я уже использовал jLabName.setIconTextGap(35); , но он сделал следующее:

введите описание изображения здесь

Мне нужно вставить пробел перед значком, а не после него!

Примечание 2: Настройка границы и Тип и другие настройки:

введите описание изображения здесь

Ответ №1:

Для этого вы можете использовать составные границы.

Например.

 //get border of your component which is button as you say
Border border = myButton.getBorder();

//create a new empty border with name it margin
Border margin = new EmptyBorder(0,10,0,0); //top 0, left 10 , bottom 0, right 0

//now set compound border to your button(component), with margin
myButton.setBorder(new CompoundBorder(border, margin));

//NOTE: CompoundBorder accepts two borders as arguments, first one is inner border and last one is outer border
 

Комментарии:

1. (1 ) хорошее решение для JButton. Однако OP обновил вопрос, чтобы указать, что они действительно используют JLabel. Поскольку JLabel не имеет границы по умолчанию, нет необходимости в логике для получения исходной границы.

Ответ №2:

Исправлено с помощью следующего кода:

 a1.setBorder(new CompoundBorder(new EtchedBorder(), BorderFactory.createEmptyBorder(1, 8, 1, 1)));