// Mainframe class that extends Frame // Date: 3-9-99 // Give applet access to all the AWT toolkit libraries import java.awt.*; import java.awt.event.*; public class mainframe extends Frame implements ActionListener, ItemListener, MouseListener{ // declare menu items private MenuItem exit, window, plan, image, topic, text; private boolean planFlag, imageFlag, textFlag; //private CheckboxMenuItem scrollbar; //private planframe planF; private imageframe planF, imageF; private topicfrm topicF; private textframe textF; //image arrays for plan and image windows private Image mainImage[][] = new Image[2][6]; public int imageRow = 0; public int imageCol = 0; private Image planImage [] = new Image [6]; private Image imageImage [] = new Image [6]; // constructor with user interaction components public mainframe (String s, Image imageIn[][], Image planV[], Image imageF[]){ super (s); // call base class constructor to set frame title mainImage = imageIn; planImage = planV; imageImage = imageF; addMouseListener (this); addWindowListener (new closewindow()); setBackground (Color.black); // create menu bar MenuBar bar = new MenuBar (); // create File menu items Menu fileMenu = new Menu ("File"); exit = new MenuItem ("Exit"); exit.addActionListener (this); fileMenu.add (exit); bar.add (fileMenu); // create Window menu items Menu windowMenu = new Menu ("Window"); text = new MenuItem ("Text"); text.addActionListener (this); plan = new MenuItem ("Plan"); plan.addActionListener (this); planFlag = false; image = new MenuItem ("Images"); image.addActionListener (this); imageFlag = false; //scrollbar = new CheckboxMenuItem ("Scrollbar"); //scrollbar.addActionListener (this); topic = new MenuItem ("Topic Areas"); topic.addActionListener (this); //two.setState(true); windowMenu.add (text); windowMenu.add (plan); windowMenu.add (image); //windowMenu.add (scrollbar); windowMenu.add (topic); //playerMenu.add (new MenuItem ("-")); // add menu to menu bar bar.add (windowMenu); // set the menu bar for the frame setMenuBar (bar); } public void drawImage (Graphics g, int r, int c) //draws the image at the requested row and column { g.drawImage (mainImage[r][c],0,0,600,450,this); } public void paint (Graphics g) //paints the correct image in the mainframe { g.setColor (Color.black); drawImage (g,imageRow,imageCol); } public void update (int newRow) //updates based on topic change { imageRow = newRow; if (textFlag != false) textF.newText(imageRow, imageCol); //textF.repaint(); repaint(); } public void mousePressed (MouseEvent e){ /*if (e.isMetaDown() || e.isAltDown()){ System.out.println ("in right mouse pressed"); if (imageRow == 0) imageRow = 1; else imageRow = 0; } else{*/ if (imageCol < 5) imageCol = imageCol + 1; else imageCol = 0; System.out.println ("imageCol = " + imageCol); if (imageFlag != false) imageF.changeImage (imageCol); if (planFlag != false) planF.changeImage (imageCol); if (textFlag != false) textF.newText(imageRow, imageCol); //textF.repaint(); repaint(); } public void mouseClicked (MouseEvent e) {} public void mouseEntered (MouseEvent e) {} public void mouseExited (MouseEvent e) {} public void mouseMoved (MouseEvent e) {} public void mouseReleased (MouseEvent e) {} public void clear (){ //game.initBoard (0); // clear board by setting values to 0 //game.resetWincode(); whoseTurn = 1; repaint(); } public void actionPerformed (ActionEvent e){ if (e.getSource() == exit){ hide (); dispose (); } else if (e.getSource() == text){ if (textF != null){ textF.hide(); textF.dispose(); } textF = new textframe ("Text Information", imageRow, imageCol); textF.resize (250,450); textF.show (); textF.setResizable(false); textFlag = true; //System.out.println ("Just returned from textframe calls"); } else if (e.getSource() == plan){ if (planF != null){ planF.hide(); planF.dispose(); } planF = new imageframe ("Plan View", planImage, imageCol, this); System.out.println ("in plan after constructor call"); planF.resize (350,244); planF.show (); planF.setResizable(false); planFlag = true; } else if (e.getSource() == image){ if (imageF != null){ imageF.hide(); imageF.dispose(); } imageF = new imageframe ("Supporting Images", imageImage, imageCol, this); System.out.println ("in image after constructor call"); imageF.resize (350,244); imageF.show (); imageF.setResizable(false); imageFlag = true; } //else if (e.getSource() == scrollbar){ //} else if (e.getSource() == topic){ if (topicF != null){ topicF.hide(); topicF.dispose(); } topicF = new topicfrm ("Topic Choices", this); topicF.resize (250,100); topicF.show(); topicF.setResizable(false); } } public void itemStateChanged (ItemEvent e){ //if (e.getSource() == one) { // one player selected // nPlayers = 1; two.setState(false); } // else if (e.getSource() == two) { // two players selected // nPlayers = 2; one.setState(false); } }