You can hide a part of JFrame that contains the swing controls which you want on another JFrame.
When the user clicks on a Jbutton the JFrame width increases and when he clicks on another same kind of Jbutton the JFrame comes to the default size.
JFrame myFrame = new JFrame("");
JButton button1 = new JButton("Basic");
JButton button2 = new JButton("More options");
// actionPerformed block code for button1 (Default size)
myFrame.setSize(400, 400);
// actionPerformed block code for button2 (Increase width)
myFrame.setSize(600, 400);