FileDocCategorySizeDatePackage
MoreChoices.javaAPI DocExample3269Sun Feb 08 21:33:50 GMT 2004None

MoreChoices

public class MoreChoices extends JFrame
Demo to show a way of having "More Choices/Less Choices" in a pop-up window. The secret is to call pack() again each time you add/subtract the bottom panel.
author
Ian F. Darwin, http://www.darwinsys.com/
version
$Id: MoreChoices.java,v 1.3 2004/02/09 03:33:50 ian Exp $

Fields Summary
Container
cp
boolean
unsavedChanges
JButton
moreOrLessButton
JPanel
moreOrLessPanel
ActionListener
more
ActionListener
less
Constructors Summary
public MoreChoices()
Construct the object including its GUI

		super("More Choices");
		// cp = getContentPane();
		cp = this;
		cp.setLayout(new BorderLayout());

		ButtonsPanel bp = new ButtonsPanel();
		cp.add(BorderLayout.NORTH, bp);

		// Construct the more/less switcher
		less = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				cp.remove(moreOrLessPanel);
				pack();
				moreOrLessButton.setText("More Choices");
				moreOrLessButton.removeActionListener(less);
				moreOrLessButton.addActionListener(more);
			}
		};
		more = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				cp.add(BorderLayout.SOUTH, moreOrLessPanel);
				pack();
				moreOrLessButton.setText("Fewer Choices");
				moreOrLessButton.removeActionListener(more);
				moreOrLessButton.addActionListener(less);
			}
		};
		bp.add(moreOrLessButton = new JButton("More Choices"));
		// Initial state is to add more choices
		moreOrLessButton.addActionListener(more);

		moreOrLessPanel = new ChoicesPanel();

		// Finally a frame closer
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				setVisible(false);
				dispose();
				System.exit(0);
			}
		});
			
		pack();
	
Methods Summary
public static voidmain(java.lang.String[] av)
"main program" method - construct and show


	        
	     
		// create a MoreChoices object, tell it to show up
		JFrame jf = new MoreChoices();
		jf.setLocation(100, 100);	// get away from screen corner,
							// since on some OSes a main window at 0,0 may be
							// partly obscured (e.g. notebook with PowerPanel
		jf.setVisible(true);