FileDocCategorySizeDatePackage
SaveDialog.javaAPI DocExample2150Sat Nov 25 12:54:18 GMT 2000None

SaveDialog

public class SaveDialog extends JFrame

Fields Summary
boolean
unsavedChanges
Button
quitButton
Constructors Summary
public SaveDialog()
Construct the object including its GUI

		super("SaveDialog");
		Container cp = getContentPane();
		cp.setLayout(new FlowLayout());
		cp.add(new Label("Press this button to see the Quit dialog: "));
		cp.add(quitButton = new Button("Quit"));
		quitButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.out.println("In Exit Button's action handler");
				if (okToQuit()) {
					setVisible(false);
					dispose();
					System.exit(0);
				}
			}
		});
		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 SaveDialog object, tell it to show up
		new SaveDialog().setVisible(true);
	
booleanokToQuit()

		String[] choices = {
			"Yes, Save and Quit", "No, Quit without saving", "CANCEL"
		};
		int result = JOptionPane.showOptionDialog(this,
			"You have unsaved changes. Save before quitting?", "Warning",
			JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, 
			null, choices, choices[0]);

			// Use of "null" as the Icon argument is contentious... the
			// document says you can pass null, but it does seem to
			// generate a lot of blather if you do, something about
			// a NullPointerException :-) ...

		if (result >= 0)
			System.out.println("You clicked " + choices[result]);

		switch(result) {
		case -1:
			System.out.println("You killed my die-alog - it died");
			return false;
		case 0:	// save and quit
			System.out.println("Saving...");
			// mainApp.doSave();
			return true;
		case 1:	// just quit
			return true;
		case 2:	// cancel
			return false;
		default:
			throw new IllegalArgumentException("Unexpected return " + result);
		}