// W4frame.java // demonstrate simple menus, file open import java.awt.*; import java.awt.event.*; import java.text.*; import java.io.*; import javax.swing.*; import javax.swing.filechooser.*; public class W4frame extends JFrame { int orderValues[] = {2, 3, -1, -2}; // -1 is code for N/2 -2 is code for N int orderItemValue; // set to order code int optionItemValues[]; JRadioButtonMenuItem orderItems[], options[]; ButtonGroup optionGroup, orderGroup; MyJPanel panel; private JDesktopPane theDesktop; public W4frame() { setTitle("W4frame demonstration"); setSize(300,370); 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 fileMenu = new JMenu("File"); bar.add(fileMenu); // add File menu to menu bar // set up File items JMenuItem newItem = new JMenuItem("New"); fileMenu.add(newItem); JMenuItem openItem = new JMenuItem("Open"); fileMenu.add(openItem); JMenuItem printItem = new JMenuItem("Print"); fileMenu.add(printItem); JMenuItem quitItem = new JMenuItem("Quit"); fileMenu.add(quitItem); // set up Enter menu JMenu enterMenu = new JMenu("Enter"); bar.add(enterMenu); // add Enter menu to menu bar // set up Enter items JMenuItem easyItem = new JMenuItem("Easy"); enterMenu.add(easyItem); JMenuItem completeItem = new JMenuItem("Complete"); enterMenu.add(completeItem); // set up plot area theDesktop = new JDesktopPane(); getContentPane().add(theDesktop); // Create internal frame JInternalFrame frame = new JInternalFrame( "Plot area", true, true, true, true); // attach panel to internal frame Container container = frame.getContentPane(); panel = new MyJPanel(); container.add(panel, BorderLayout.CENTER); // set size of internal frame to size of its contents frame.pack(); // uses class Dimension theDesktop.add(frame); panel.addMouseListener (new mousePressHandler()); frame.setVisible(true); newItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.out.println("File New"); // action if simple and short }}); // call function if long or complex openItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.out.println("File Open"); JFileChooser chooser = new JFileChooser(); // // Note: needs compiled ExampleFileFilter // ExampleFileFilter filter = new ExampleFileFilter(); // filter.addExtension("draw"); //filter.setDescription(".draw Images"); FileNameExtensionFilter filter = new FileNameExtensionFilter( ".draw files", "draw"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(W4frame.this); if(returnVal == JFileChooser.APPROVE_OPTION) { System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName()); } }}); printItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.out.println("File Print"); }}); quitItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.out.println("File Quit"); }}); easyItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.out.println("Enter Easy"); }}); completeItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) { System.out.println("Enter Complete"); }}); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); setVisible(true); } // end constructor W4frame class mousePressHandler extends MouseAdapter { public void mousePressed (MouseEvent e) { // for future use panel.repaint(); } } // end mousePressHandler class MyJPanel extends JPanel { MyJPanel(){} // default, just to have "paint" dependent public void paintComponent(Graphics g) { g.clearRect(0, 0, 1000, 1000); // cover non-erase bug g.setColor(Color.blue); g.drawString("make menu selection", 100, 100); // for future use } // end paint // return dimensions for sizing public Dimension getPreferredSize() { return new Dimension(300, 350); } } // end MyJPanel public static void main (String[] args) // no args expected { new W4frame(); } // end main } // end class W4frame