⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controlpanel.java

📁 控制移到机器人的例子程序
💻 JAVA
字号:
/*
	A basic extension of the java.awt.Frame class
 */

import java.awt.*;
import java.io.*;
import java.util.zip.*;

public class ControlPanel extends Frame
{
    MazeGraphics myMazePict;
    GameWorld myGameWorld;
	public ControlPanel()
	{
		// This code is automatically generated by Visual Cafe when you add
		// components to the visual environment. It instantiates and initializes
		// the components. To modify the code, only use code syntax that matches
		// what Visual Cafe can generate, or Visual Cafe may be unable to back
		// parse your Java file into its visual environment.
		//{{INIT_CONTROLS
		setLayout(null);
		setVisible(false);
		setSize(insets().left + insets().right + 549,insets().top + insets().bottom + 399);
		button1 = new java.awt.Button();
		button1.setActionCommand("button");
		button1.setLabel("Display a maze!");
		button1.setBounds(insets().left + 12,insets().top + 12,114,42);
		button1.setBackground(new Color(12632256));
		add(button1);
		headCountLabel = new java.awt.Label("Head count:");
		headCountLabel.setBounds(insets().left + 144,insets().top + 12,70,18);
		add(headCountLabel);
		headCountField = new java.awt.TextField();
		headCountField.setText("1");
		headCountField.setBounds(insets().left + 216,insets().top + 12,45,18);
		add(headCountField);
		setTitle("Maze Displayer control panel");
		//}}

		//{{INIT_MENUS
		//}}

		//{{REGISTER_LISTENERS
		SymWindow aSymWindow = new SymWindow();
		this.addWindowListener(aSymWindow);
		SymMouse aSymMouse = new SymMouse();
		button1.addMouseListener(aSymMouse);
		//}}
		this.setVisible(true);
	}

	public ControlPanel(String title)
	{
		this();
		setTitle(title);
	}

	public synchronized void show()
	{
		move(50, 50);
		super.show();
	}

	public void addNotify()
	{
	    // Record the size of the window prior to calling parents addNotify.
	    Dimension d = getSize();
	    
		super.addNotify();

		if (fComponentsAdjusted)
			return;

		// Adjust components according to the insets
		setSize(insets().left + insets().right + d.width, insets().top + insets().bottom + d.height);
		Component components[] = getComponents();
		for (int i = 0; i < components.length; i++)
		{
			Point p = components[i].getLocation();
			p.translate(insets().left, insets().top);
			components[i].setLocation(p);
		}
		fComponentsAdjusted = true;
	}

    // Used for addNotify check.
	boolean fComponentsAdjusted = false;

	//{{DECLARE_CONTROLS
	java.awt.Button button1;
	java.awt.Label headCountLabel;
	java.awt.TextField headCountField;
	//}}

	//{{DECLARE_MENUS
	//}}

	class SymWindow extends java.awt.event.WindowAdapter
	{
		public void windowClosing(java.awt.event.WindowEvent event)
		{
			Object object = event.getSource();
			if (object == ControlPanel.this)
				Frame1_WindowClosing(event);
		}
	}
	
	void Frame1_WindowClosing(java.awt.event.WindowEvent event)
	{
		hide();		 // hide the Frame
	}

	class SymMouse extends java.awt.event.MouseAdapter
	{
		public void mouseClicked(java.awt.event.MouseEvent event)
		{
			Object object = event.getSource();
			if (object == button1)
				button1_MouseClick(event);
		}
	}

	void button1_MouseClick(java.awt.event.MouseEvent event)
	{	 
	    /* read in the file and set it as an object instance of GameWorld */
	    FileDialog f = new FileDialog(this, "Load Maze", FileDialog.LOAD);
	    f.show();
	    String filename = f.getFile();
	    String directory = f.getDirectory();
	    if (filename != null) {
	        try {
	            if (this.myMazePict != null) {
	                /* if a maze is drawn already, erase it physically! */
	                this.myMazePict.wipeMaze();
	            }
	            FileInputStream fis = new FileInputStream(directory+filename);
	            GZIPInputStream gzis = new GZIPInputStream(fis);
	            ObjectInputStream in = new ObjectInputStream(gzis);
	            this.myGameWorld = (GameWorld)in.readObject();
	            in.close();
	            
                myMazePict = 
	            new MazeGraphics(this, myGameWorld.width, myGameWorld.height,
	                             20,100);
	            
	            headCountField.setText(Integer.toString(myGameWorld.teamHeadCount));
	                                    
	            /* now add all the walls of this new maze */
	            for (int i=0; i< myGameWorld.width; i++) {
	                for (int j=0; j < myGameWorld.height; j++) {
	                    for (int k=0; k < 4; k++) {
	                        if (myGameWorld.maze[i][j][k] == 1)
	                            myMazePict.addWall(i,j,k);
	                    }
	                }
	            }
	            /* now add the init robot position to this maze */
	            int[] myLocation = myGameWorld.myLocation;
                if (myLocation != null) myMazePict.addRobot(myLocation[0],myLocation[1],myLocation[2],0);

	            /* now add the nuggets into maze just by putting gold */
	            int[] nuggetPos;
	            if (myGameWorld.nuggets != null) {
	                System.out.println("Total number of golds is: " + myGameWorld.nuggets.size());
	                for (int i=0; i < myGameWorld.nuggets.size(); i++) {
	                    nuggetPos = (int [])myGameWorld.nuggets.elementAt(i);
	                    if (nuggetPos.length == 2) {
    	                    myMazePict.addGold(nuggetPos[0],nuggetPos[1]);
    	                } else {
    	                    myMazePict.addGold(nuggetPos[0],nuggetPos[1],nuggetPos[2],nuggetPos[3]);
    	                }
	                }
	            }		
	            
	            /* and add the ports by putting ports */
	            int[] portPos;
	            if (myGameWorld.ports != null) {
	                System.out.println("Total ports is: " + myGameWorld.ports.size());
	                for (int i=0; i < myGameWorld.ports.size(); i++) {
	                    portPos = (int[]) myGameWorld.ports.elementAt(i);
	                    myMazePict.addPort(portPos[0],portPos[1]);
	                }
	            }
	            
	        } catch (Exception e) { System.out.println(e); }
	    } /* end if */	            
	} /* end of the button_click function */
	
	public void paint(Graphics g)
	{
	    if (this.myMazePict != null)
	        myMazePict.update();	   
	} // paint()
	
	
	/* Here's an example of how you would save your own GameWorld object! */
/*		FileDialog f = new FileDialog(this, "Save Maze",
		    FileDialog.SAVE);
		f.show();
		String filename = f.getFile();
		String directory = f.getDirectory();
		if (filename != null) {
		    try {
		        System.out.println("we are printing!");
		        FileOutputStream fos = new FileOutputStream(directory+filename);
		        GZIPOutputStream gzos = new GZIPOutputStream(fos);
		        ObjectOutputStream out = new ObjectOutputStream(gzos);
		        out.writeObject(this.myGameWorld);
		        out.flush();
		        out.close();
		    } // endtry
		    catch (IOException e) { System.out.println(e); }
		} // endif
*/
	/* END OF EXAMPLE *********************************** */		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -