Aligning JComponents to left- and right-hand sides of a JPanel

Paul Reiners picture Paul Reiners · Dec 20, 2011 · Viewed 7.3k times · Source

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?

Answer

kleopatra picture kleopatra · Dec 20, 2011

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"));