Windowing
An Introduction with Examples in Java |
Prof. David Bernstein |
Computer Science Department |
bernstdh@jmu.edu |
Class Hierarchy
JFrame frame = new JFrame("Amazing!"); frame.setSize(400, 400); frame.setVisible(true);
Using Something Like the Composite Pattern
It would be better if there were a JMenuComponent
interface
that both the JMenuItem
and the JMenu
implemented
(realizations of which could be added to a JMenu
).
import javax.swing.*; /** * An example that uses a menu bar * * @version 1.0 * @author Prof. David Bernstein, James Madison Univeristy */ public class MenuBarDriver { /** * The entry point of the example * * @param args The command line arguments */ public static void main(String[] args) { JFrame frame; JMenuBar menuBar; JMenu editMenu, fileMenu, helpMenu, searchMenu; JMenuItem item; frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); menuBar = new JMenuBar(); // The File menu fileMenu = new JMenu("File"); item = new JMenuItem("Exit"); fileMenu.add(item); menuBar.add(fileMenu); // The Edit menu editMenu = new JMenu("Edit"); item = new JMenuItem("Cut"); editMenu.add(item); item = new JMenuItem("Paste"); editMenu.add(item); // The Search menu (in the Edit Menu) searchMenu = new JMenu("Search"); item = new JMenuItem("Backward"); searchMenu.add(item); item = new JMenuItem("Forward"); searchMenu.add(item); editMenu.add(searchMenu); menuBar.add(editMenu); // The Help menu helpMenu = new JMenu("Help"); item = new JMenuItem("About"); helpMenu.add(item); menuBar.add(helpMenu); // The menu bar frame.setJMenuBar(menuBar); frame.setSize(400,200); frame.setVisible(true); } }
import javax.swing.*; /** * An example that uses a standard message dialog box * * @author Prof. David Bernstein, James Madison University * @version 1.0 */ public class MessageDialogDriver { /** * The entry point * * @param args The command line arguments */ public static void main(String[] args) { ImageIcon icon; System.out.println("Before the dialogs..."); JOptionPane.showMessageDialog(null, "The power will be shut off in 5 minutes!" ); JOptionPane.showMessageDialog(null, "Please do it right!", "Error", JOptionPane.ERROR_MESSAGE ); // Possible types: // // PLAIN_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSGAE // QUESTION_MESSAGE, ERROR_MESSAGE icon = new ImageIcon("madison.gif"); JOptionPane.showMessageDialog(null, "Welcome to James Madison University", "JMU", JOptionPane.INFORMATION_MESSAGE, icon ); System.out.println("After the dialogs..."); } }
import javax.swing.*; /** * An example that uses a standard option dialog box * * @author Prof. David Bernstein, James Madison University * @version 1.0 */ public class OptionDialogDriver { /** * The entry point * * @param args The command line arguments */ public static void main(String[] args) { int result; result = JOptionPane.showOptionDialog(null, "Do you want to retry?", "Error!", JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, null, null ); if (result == JOptionPane.CLOSED_OPTION) { System.out.println("Closed the window"); } else if (result == 0) { System.out.println("Yes"); } else if (result == 1) { System.out.println("No"); } } }
import javax.swing.*; /** * An example that uses a standard input dialog box * * @author Prof. David Bernstein, James Madison University * @version 1.0 */ public class InputDialogDriver { /** * The entry point * * @param args The command line arguments */ public static void main(String[] args) { ImageIcon icon; String response; String[] schools; response = JOptionPane.showInputDialog( "What is your favorite University" ); System.out.println("\n\n\n\n"); if (response == null) { System.out.println("I asked a question and"+ "I expect an answer!"); } else { if (response.equals("JMU")) { System.out.println("Yes! JMU rules!"); } else { System.out.println("Are you kidding? " + response + "?"); icon = new ImageIcon("madison.gif"); schools = new String[5]; schools[0] = "George Mason University"; schools[1] = "James Madison University"; schools[2] = "Old Dominion University"; schools[3] = "University of Virginia"; schools[4] = "Virginia Institute of Technology"; response = (String)JOptionPane.showInputDialog( null, "What is your favorite University?", "University Selection", JOptionPane.QUESTION_MESSAGE, icon, schools, schools[1] ); System.out.println(response); } } System.out.println("\n\n\n\n"); } }
import java.awt.*; import javax.swing.*; /** * An example that uses a JFileChooser dialog box * * @author Prof. David Bernstein, James Madison University * @version 1.0 */ public class FileDialogDriver { /** * The entry point * * @param args The command line arguments */ public static void main(String[] args) { JFrame f; Container contentPane; int retval; JFileChooser jfc; f = new JFrame(); f.setSize(400,200); contentPane = f.getContentPane(); f.setVisible(true); jfc = new JFileChooser(); retval = jfc.showOpenDialog(f); if (retval == JFileChooser.APPROVE_OPTION) { System.out.println(jfc.getSelectedFile().getName()); } } }
import java.awt.*; import javax.swing.*; /** * An example that uses a JColorChooser dialog box * * @author Prof. David Bernstein, James Madison University * @version 1.0 */ public class ColorDialogDriver { /** * The entry point * * @param args The command line arguments */ public static void main(String[] args) { JFrame f; Color color; Container contentPane; f = new JFrame(); f.setSize(400,200); contentPane = f.getContentPane(); f.setVisible(true); color = JColorChooser.showDialog(f, "Choose a color", Color.blue); if (color != null) { System.out.println(color); } } }