// W5frame.java menu to popup dialog to get input // text, integer, float import java.awt.*; import java.awt.event.*; import java.text.*; import java.io.*; import javax.swing.*; public class W5frame extends JFrame { String numStr, result, name; int num, again; double x, y, z; int index, last, len; // for parsing x y z boolean debug = false; public W5frame() { setTitle("W5frame"); setSize(400,300); // can be changed by user setBackground(Color.white); setForeground(Color.black); // create menu bar and attach it to AwtMenuTest window JMenuBar bar = new JMenuBar(); setJMenuBar(bar); // set up file menu JMenu setMenu = new JMenu("Set Value"); bar.add(setMenu); // add Set Value menu to menu bar // set up File items JMenuItem numberItem = new JMenuItem("Number"); setMenu.add(numberItem); JMenuItem viewItem = new JMenuItem("View Angle"); setMenu.add(viewItem); JMenuItem nameItem = new JMenuItem("Name"); setMenu.add(nameItem); JMenuItem applyItem = new JMenuItem("Apply"); setMenu.add(applyItem); JMenuItem quitItem = new JMenuItem("Quit"); setMenu.add(quitItem); // Listners with actions in line numberItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { numStr = JOptionPane.showInputDialog( "Give me a number from one to ten."); if(numStr==null) { System.out.println("cancelled"); } else { num = Integer.parseInt(numStr); System.out.println("Number is "+num); } }}); viewItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { numStr = JOptionPane.showInputDialog( "Give X Y Z of viewer (one space separated float)."); if(numStr==null) { System.out.println("cancelled"); } else { // could use exception handler for bad input index = -1; // start of x if(debug) System.out.println("start x index="+index); last = numStr.indexOf(' ',index+1); // end of x if(debug) System.out.println("last of x ="+last); x = Double.parseDouble(numStr.substring(index+1,last)); if(debug) System.out.println("x="+x); index = numStr.indexOf(' ',last); // start of y if(debug) System.out.println("start y index="+index); last = numStr.indexOf(' ',index+1); if(debug) System.out.println("last of y ="+last); y = Double.parseDouble(numStr.substring(index+1,last)); if(debug) System.out.println("y="+y); index = numStr.indexOf(' ',last); // start of z if(debug) System.out.println("start z index="+index); last = numStr.length(); if(debug) System.out.println("last of z ="+last); z = Double.parseDouble(numStr.substring(index+1,last)); if(debug) System.out.println("z="+z); System.out.println("View Angle x="+x+", y="+y+", z="+z); } }}); nameItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { name = JOptionPane.showInputDialog("What is your name?"); if(name==null) { System.out.println("cancelled"); } else { System.out.println("Name is "+name); } }}); applyItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.out.println("Apply"); }}); quitItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.exit(0); }}); setVisible(true); // runs until quit } // end W5frame constructor public static void main (String[] args) // no args expected { new W5frame(); } // end main } // end class W5frame