2016-03-18 2 views
0

Я пытаюсь создать несколько JLabels для использования в качестве кнопок внутри BoxLayout, уложенных друг на друга. Макет отлично, но я обнаружил, что я не могу изменять размеры меток до размеров, которые я хочу. Я использую следующий код, чтобы размер их:Невозможно изменить размер JLabels в BoxLayout

JLabel fileAddBtn = new JLabel("Add File", SwingConstants.CENTER); 
fileAddBtn.setBorder(BorderFactory.createLineBorder(Color.black)); 
fileAddBtn.setMaximumSize(new Dimension(Integer.MAX_VALUE, fileAddBtn.getMinimumSize().height)); 

и

JLabel fileRemBtn = new JLabel("Remove File", SwingConstants.CENTER); 
fileRemBtn.setBorder(BorderFactory.createLineBorder(Color.black)); 
fileRemBtn.setMaximumSize(new Dimension(Integer.MAX_VALUE, fileRemBtn.getMinimumSize().height)); 

В настоящее время у меня есть две метки, при этом один длиннее другого. Они оба берут ширину более длинной метки, что хорошо, но метки обнимают края текста прямо до ближайшего пикселя. Есть ли способ сделать этикетки немного больше, чтобы вокруг ярлыков была граница? Я пробовал использовать setSize(), но это не требуется. Я также добавил прямые значения в вышеприведенный код, но он тоже не изменил их. Я попытался добавить вокруг них EmptyBorder(), который работал для калибровки, но он спрятал мою границу линии, которая их окружает. Есть предположения?

+0

Вы можете показать изображение вашего приложения – afzalex

ответ

2

Есть ли способ сделать этикетки немного крупнее, чтобы вокруг ярлыков была граница?

Несомненно. Добавьте EmptyBorder.

Но поскольку код уже добавляет границу к меткам, чтобы сохранить эту границу строки, сделайте CompoundBorder, состоящий из пустой границы и границы строки, и установите составную границу метки.

Смотрите также Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing? (Да.)

Смежные вопросы