I have a JPanel that contains two JComponents, say two JButtons, btnLeft and btnRight. I want these two buttons aligned horizontally and I want btnLeft to be on the left side of the JPanel and btnRight to be on the right side of the JPanel with whatever space is left over in between.
I know I can do this with a BoxLayout by adding a horizontal strut in which I have to specify the amount of space in between, but there must be a simpler way without having to specify what the left-over space in between is.
How do I do this?
//To align it to the left p. add(b, BorderLayout. WEST); //To align it to the right p. add(b, BorderLayout.
You can set a panel's layout manager using the JPanel constructor. For example: JPanel panel = new JPanel(new BorderLayout()); After a container has been created, you can set its layout manager using the setLayout method.
If you want to let the frame appear at the center of your screen, you can set the location by: frame. setLocationRelativeTo(null); Note that you would want to invoke the above after you set the size (or pack() ) your frame.
createLineBorder() − To create a line border. JPanel. setBorder(border) − To set the desired border to the JPanel.
Sounds like horizontalGlue is what you are looking for:
JComponent comp = new JPanel();
comp.setLayout(new BoxLayout(comp, BoxLayout.LINE_AXIS));
comp.add(new JLabel("left"));
comp.add(Box.createHorizontalGlue());
comp.add(new JLabel("right"));
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