We can now put all the pieces together. Below is the complete program. Following that, you will find an anchor you can use to run the applet.import java.applet.Applet; import java.awt.*; public class step4 extends Applet{ // handles menu actions MyFrame outerBox = new MyFrame ( this ); Panel topPanel = new Panel ( ); Panel centerPanel = new Panel ( ); Panel bottomPanel = new Panel ( ); MenuBar menuBar = new MenuBar ( ); Menu fileMenu = new Menu ("File"); Menu editMenu = new Menu ("Edit"); Menu helpMenu = new Menu ("Help"); Scrollbar scrollbarV; Scrollbar scrollbarH; TextField message; CheckboxGroup checkboxGroup; Checkbox [ ] checkbox; public void init ( ){ centerPanel . setBackground (Color.white); // *** Build Menus fileMenu.add ( new MenuItem ( "New" ) ); fileMenu.add ( new MenuItem ( "Open" ) ); fileMenu.add ( new MenuItem ( "Close" ) ); fileMenu.add ( new MenuItem ( "Save" ) ); fileMenu.add ( new MenuItem ( "Quit" ) ); editMenu.add ( new MenuItem ( "Cut" ) ); editMenu.add ( new MenuItem ( "Copy" ) ); editMenu.add ( new MenuItem ( "Paste" ) ); editMenu.add ( new MenuItem ( "Delete" ) ); helpMenu.add ( new MenuItem ( "Help" ) ); menuBar .add ( fileMenu ); menuBar .add ( editMenu ); menuBar .add ( helpMenu ); menuBar .setHelpMenu ( helpMenu ); outerBox.setMenuBar ( menuBar ); // *** Build Scrollbars and Message area scrollbarV = new Scrollbar (Scrollbar.VERTICAL, 0, 100, 0, 1000 ); scrollbarH = new Scrollbar (Scrollbar.HORIZONTAL, 0, 100, 0, 1000 ); message = new TextField ( "Messages Displayed Here", 80 ); message.setEditable ( false ); // *** Build Checkboxes checkboxGroup = new CheckboxGroup ( ); checkbox = new Checkbox [ 3 ]; checkbox [ 0 ] = new Checkbox ( "red", checkboxGroup, false ); checkbox [ 1 ] = new Checkbox ( "green", checkboxGroup, false ); checkbox [ 2 ] = new Checkbox ( "blue", checkboxGroup, true ); // *** Build display bottomPanel.setLayout ( new BorderLayout ( ) ); bottomPanel.add ( "North", scrollbarH ); bottomPanel.add ( "South", message ); outerBox. setLayout (new BorderLayout ( ) ); outerBox.add ("Center", centerPanel); outerBox.add ("South", bottomPanel); outerBox.add ("East", scrollbarV); outerBox.resize (600, 500); outerBox. setBackground (Color.white); outerBox.show( ); } // end init public boolean action ( Event event, Object object ) { if ( event.target instanceof MenuItem ) { if ( (event.arg).equals("New") ) { System.out.println ( "File Menu: New selected" ); return true; } if ( (event.arg).equals("Open") ) { System.out.println ( "File Menu: Open selected" ); return true; } if ( (event.arg).equals("Close") ) { System.out.println ( "File Menu: Close selected" ); return true; } if ( (event.arg).equals("Save") ) { System.out.println ( "File Menu: Save selected" ); return true; } if ( (event.arg).equals("Quit") ) { System.out.println ( "File Menu: Quit selected" ); return true; } if ( (event.arg).equals("Cut") ) { System.out.println ( "Edit Menu: Cut selected" ); return true; } if ( (event.arg).equals("Copy") ) { System.out.println ( "Edit Menu: Copy selected" ); return true; } if ( (event.arg).equals("Paste") ) { System.out.println ( "Edit Menu: Paste selected" ); return true; } if ( (event.arg).equals("Delete") ) { System.out.println ( "Edit Menu: Delete selected" ); return true; } if ( (event.arg).equals("Help") ) { System.out.println ( "Help Menu: Help selected" ); return true; } } // end menuitem test return false; } // end action public boolean handleEvent ( Event event ) { if ( (event.target instanceof Scrollbar) && ( (event.id == Event.SCROLL_ABSOLUTE) || (event.id == Event.SCROLL_LINE_DOWN) || (event.id == Event.SCROLL_LINE_UP) || (event.id == Event.SCROLL_PAGE_DOWN) || (event.id == Event.SCROLL_PAGE_UP) ) ) { if ( event.target == scrollbarV ) { System.out.println ( "scrollbarV: y = "+((Integer)event.arg).intValue() ); return true; } // end scrollbarV if ( event.target == scrollbarH ) { System.out.println ( "scrollbarH: x = "+((Integer)event.arg).intValue() ); return true; } // end scrollbarH return super.handleEvent ( event ); } // end both scrollbars return super.handleEvent ( event ); } // end handleEvent }// end step4 // ************************ MyFrame Class ************************ class MyFrame extends Frame { Applet source; MyFrame ( Applet a ) { super ( ); source = a; } // end constructor public boolean action ( Event event, Object object ) { if ( event.target instanceof MenuItem ) { return source.action ( event, object ); } // end if return false; } // end action public boolean handleEvent ( Event event ) { if ( event.target instanceof Scrollbar ) { return source.handleEvent ( event ); } // end if return super.handleEvent ( event ); } // end handleEvent } // end MyFrame
Run the applet