How can I keep a JLabel from displaying flush against the side of the frame? I have the same problem when using GridLayout or BoxLayout.
Here's an example where this happens:
JPanel content = new JPanel();
content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS));
content.add(new JLabel("Hello World"));
CSS has the concept of margins and padding. Does Java have similar?
I still want Left justified but with a few pixels of space between the edge and the label.
You could set an empty border for the JLabel
to move the component over a few pixels from the left edge:
label.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0));
For centered labels, try this:
content.add(new JLabel("Hello World", JLabel.CENTER));
If you're using Box
, you can add space by calling,(on a vertical box):
content.add(Box.createVerticalStrut(height));
content.add(new JLabel("Hello World"));
Or for horizontal:
content.add(Box.createHorizontalStrut(width));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With