Search code examples
javaswingawtflowlayout

Changing FlowLayout Alignment after button click


I have a FlowLayout where default alignment of the component is CENTER. I want to change the component alignment (some Buttons) to left when the left button is clicked Like all the buttons will be skewed to left.

and this is my left button actionListener code

    left.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {
            setLayout(new FlowLayout(FlowLayout.LEFT));

        }

    });

What is the problem here?


Solution

  • Use revalidate() after changing layout.

    left.addActionListener(new ActionListener(){
    
            @Override
            public void actionPerformed(ActionEvent e) {
                setLayout(new FlowLayout(FlowLayout.LEFT));
                revalidate();
            }
    
        });