I use multiple components that has a border painted. Is there any easy way to add a margin to the component so that the borders aren\'t painted so close to eachother?
This is typically done using your layout manager. For example, if you are using GridBagLayout, you would set insets on the GridBagConstraint object to the desired value.
Another option is to use the Box object and add a horizontal or vertical struct. See javadoc for Box.createVerticalStrut( int width ) and the similar createHorizontalStrut.
Another way to get what you want is to:
Border of your
componentnull, set an EmptyBorder for your
componentnull, create a new
CompoundBorder (with an EmptyBorder
and the current Border of the
component) and set it for the
componentIn code, that should look like that (sorry I haven't tested it):
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));
}
Where:
Note that this method might have an impact (size, alignment) on the form layout, depending on the LayoutManager you are using. But I think it is worth trying.