Я использую несколько компонентов, которому нарисовали границу. Там какой-либо простой способ состоит в том, чтобы добавить поле к компоненту так, чтобы границы не были нарисованы так друг близко к другу?
Обычно это делается с помощью менеджера компоновки. Например, если вы используете GridBagLayout
, вы должны установить insets
на объекте GridBagConstraint
на нужное значение.
Другой вариант - использовать объект Box
и добавить горизонтальную или вертикальную структуру. См. javadoc для Box.createVerticalStrut( int width )
и аналогичный createHorizontalStrut
.
Другой способ получить желаемое - это:
Границу
вашего
компонент null
, установите EmptyBorder
для вашего
компонент нуль
, создать новый
CompoundBorder
(с EmptyBorder
и текущая Граница
компонент) и установите его для
компонент В коде это должно выглядеть так (извините, я не тестировал его):
Border current = component.getBorder();
Border empty = new EmptyBorder(top, left, bottom right);
if (current == null)
{
component.setBorder(empty);
}
else
{
component.setBorder(new CompoundBorder(empty, current));
}
Где:
Обратите внимание, что этот метод может повлиять (размер, выравнивание) на макет формы в зависимости от LayoutManager
, который вы используете. Но думаю, попробовать стоит.