Search code examples
javaswinglayoutjpaneljcomponent

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


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?


Solution

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