/** * CS1322: Programming Assignment #6 - Fall 2002 * *
 * IDBox for: PacmanFrame.java
 *
 * Revisions: 1.0 Nov. 24, 2002
 *              Created the PacmanFrame class
 *
 * 
* * Collaboration statement: * "I worked on the homework assignment alone, using only * course materials." * * @author Roland Krystian Alberciak * @version Version 1.0, Nov. 24, 2002 */ import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; /* *o an instance of GameBoard o a JMenu with two JMenuItems: - one that activates a new game: This should restart the game no matter what the state of the current game. - one that exits the program. This should stop the JVM just as if we clicked on the X in the top right corner of the frame. o a default constructor which sets up the frame with a BorderLayout, instantiates a new GameBoard and adds it to the center. There is a constant in P6Constants called BOARD_FILE containing the name of the file to tokenize into a GamePiece array. o We recommend you set the size of the frame to be about 520x520 o helper methods that set up the menus. o We recommend you have this class be a listener for its own JMenuItems. You will need to then have this class implement ActionListener. o The program should exit gracefully if either the quit menu is chosen or the X in the top right is clicked. */ public class PacmanFrame extends JFrame implements ActionListener{ GameBoard cGameBoard; JMenu cGameMenu; JMenuItem jNewGame; JMenuItem jExitGame; //why the heck would you want to do that!! /** *PacmanFrame Default Constructor *Basically sets up the game */ public PacmanFrame(){ public class PacmanFrame extends JFrame implements ActionListener { /** Debug value for toggling System.out.* output */ public static boolean DEBUG = false; public static boolean DEBUG_CODE = false; public static boolean DEBUG_MAIN = false; /** * Constructor 2. Specified default-overloading constructor for PacmanFrame. * @param void No parameters. * @return PacmanFrame instance/object. */ public PacmanFrame() { super("Pacman: Pac-a-delic, yo"); super.getContentPane().setLayout( new BorderLayout() ); // also, remember "board2.txt" // this.setGb(new GameBoard("board_2.txt") ); this.setGb(new GameBoard(P6Constants.BOARD_FILE) ); super.getContentPane().add(getGb(), BorderLayout.CENTER); makeGUI(); addToGUI(); super.setSize(520, 520); super.setResizable(false); //processWindowEvent(); super.setDefaultCloseOperation(EXIT_ON_CLOSE); super.setVisible(true); //super.show(); } //end of PacmanFrame() public void makeGUI() { newGame = new JMenuItem("Restart Pacman"); exitGame = new JMenuItem("Exit Pacman"); mainMenu = new JMenu("Pacman Menu"); menuBar = new JMenuBar(); } public void addToGUI() { mainMenu.add(newGame); mainMenu.add(exitGame); menuBar.add(mainMenu); // mainMenu is placed into menuBar. super.setJMenuBar(menuBar); } public void actionPerformed(ActionEvent ae) { if( (ae.getSource() instanceof JMenuItem) ==true ) { //Restart Pacman if( ae.getActionCommand().equals("Restart Pacman") ==true ) { System.out.println("Restarted Pacman"); } //endif else if( ae.getActionCommand().equals("Exit Pacman") ==true ) { System.exit(1); //Exits gracefully. Compassionate Conservative. System.out.println("Exiting Pacman"); } //endif } } /* // ======================================================================= // Methods dealing directly with the data within this instance // (accessors, modifiers, etc) // ======================================================================= */ /** * Get the value of gb. * @return value of gb. */ public GameBoard getGb() { return gb; } /** * Set the value of gb. * @param v Value to assign to gb. */ public void setGb(GameBoard v) { this.gb = v; } /* // ======================================================================= // Protected Variables local to this instance // ======================================================================= */ /* // ======================================================================= // Private Variables local to this instance // ======================================================================= */ /** * gb. An instance of GameBoard. * To be used in accessing GameBoard's elements, and displaying in Frame. */ private GameBoard gb; private JMenu mainMenu; private JMenuBar menuBar; private JMenuItem newGame; private JMenuItem exitGame; /* // ======================================================================= // Main method (overrides this commenting system for readibility reasons) // ======================================================================= */ /** * Debugging main for class PacmanFrame. * This method will rigorously test my code. * *

* @param args a String array of command line arguments. */ public static void main(String[] args) { if ( (args.length==1) && (args[0].equals("-db") ) ) DEBUG_MAIN=true; //else leave false: ignore input. if (DEBUG_MAIN) { // NOTE: This {} encapsulates most of main and is leftmost margin as a flag. // redundant ifs left in, in case the main if(DEBUG) statement was ommitted, // this would then print out neat output, as an example of real running. PacmanFrame pf = new PacmanFrame(); if (DEBUG) System.out.println("end main(String[] args) call:"); } //end of DEBUG if } //end of main(String[] args) } //end of class PacmanFrame