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

📄 javamapperframe.java

📁 JavaMapper是一个免费的Java应用程序
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import java.io.*;public class JavaMapperFrame extends Frame implements ActionListener {	public MapCanvas canvas;	private FileDialog openDialog,saveDialog;	private String path;	private MediaTracker mediatracker = new MediaTracker(this);	private CheckboxMenuItem mRect, mCircle, mPoly;	public CheckboxMenuItem mSelect;	private MenuItem mOpenImage,mOpenMap,mPreviewClient,mPreviewServer,mSaveClient,mSaveServer,mClose,mExit,mMapProp,mInstructions,mLicense,mAbout;	public MenuItem mDeleteShape, mDeleteAllShapes, mPolyInsert, mPolyDelete;	public PopupMenu polyPopup;	public ActivateSetTool activateSetTool;	public PolyListener polyListener;	public Panel statusbar;	public Label mouseXY;		public String previewMode,mapName="";	public boolean saveNames=false;		public static Preview previewFrame;	public static Properties propFrame;		private static FileViewer fileviewer;		public JavaMapperFrame() {		super("JavaMapper");				previewFrame = new Preview(this);		propFrame = new Properties(this);		fileviewer = new FileViewer();		activateSetTool = new ActivateSetTool();		polyListener = new PolyListener();				buildMenuBar();		setLayout(new BorderLayout());				ScrollPane scrollPane = new ScrollPane();			canvas = new MapCanvas(this);			scrollPane.add(canvas);		add("Center", scrollPane);				statusbar = new Panel();		statusbar.setBackground(new Color(192,192,192));			statusbar.setLayout(new BorderLayout());			mouseXY = new Label("(0,0)      ");			statusbar.add("West",mouseXY);				add("South",statusbar);		polyPopup = new PopupMenu();			mPolyInsert = new MenuItem("Insert Point");			mPolyInsert.addActionListener(polyListener);			polyPopup.add(mPolyInsert);			mPolyDelete = new MenuItem("Delete Point");			mPolyDelete.addActionListener(polyListener);			polyPopup.add(mPolyDelete);			add(polyPopup);		this.addWindowListener(new WindowAdapter() {			public void windowClosing(WindowEvent e) {				exit();		}});				setSize(450,400);		setVisible(true);		System.out.println(" done.");	}	private void buildMenuBar() {		MenuBar menuBar = new MenuBar();		Menu mFile = new Menu("File");				mOpenImage = new MenuItem("Open Image");		mOpenImage.addActionListener(this);		mFile.add(mOpenImage);		mSaveClient = new MenuItem("Save Client-Side Map");		mSaveClient.addActionListener(this);		mSaveClient.setEnabled(false);		mFile.add(mSaveClient);						mSaveServer = new MenuItem("Save Server-Side Map");		mSaveServer.addActionListener(this);		mSaveServer.setEnabled(false);		mFile.add(mSaveServer);		mClose = new MenuItem("Close Image");		mClose.addActionListener(this);		mClose.setEnabled(false);		mFile.add(mClose);				mFile.addSeparator();		mExit = new MenuItem("Exit");		mExit.addActionListener(this);		mFile.add(mExit);		Menu mEdit = new Menu("Edit");				mDeleteShape = new MenuItem("Delete Shape");		mDeleteShape.addActionListener(this);		mDeleteShape.setEnabled(false);		mEdit.add(mDeleteShape);		mDeleteAllShapes = new MenuItem("Delete All Shapes");		mDeleteAllShapes.addActionListener(this);		mDeleteAllShapes.setEnabled(false);		mEdit.add(mDeleteAllShapes);				mMapProp = new MenuItem("Map Properties");		mMapProp.addActionListener(this);		mEdit.add(mMapProp);		Menu mView = new Menu("View");		mPreviewClient = new MenuItem("Preview Client-Side Map");		mPreviewClient.addActionListener(this);		mView.add(mPreviewClient);		mPreviewServer = new MenuItem("Preview Server-Side Map");		mPreviewServer.addActionListener(this);		mView.add(mPreviewServer);				Menu mTool = new Menu("Tool");		mRect = new CheckboxMenuItem("Rectangle");		mRect.addItemListener(activateSetTool);		mRect.setEnabled(false);		mTool.add(mRect);		mCircle = new CheckboxMenuItem("Circle");		mCircle.addItemListener(activateSetTool);		mCircle.setEnabled(false);		mTool.add(mCircle);		mPoly = new CheckboxMenuItem("Polygon");		mPoly.addItemListener(activateSetTool);		mPoly.setEnabled(false);		mTool.add(mPoly);				mTool.addSeparator();		mSelect = new CheckboxMenuItem("Select Shape");		mSelect.addItemListener(activateSetTool);		mSelect.setEnabled(false);		mTool.add(mSelect);				Menu mHelp = new Menu("Help");				mInstructions = new MenuItem("Instructions");		mInstructions.addActionListener(this);		mHelp.add(mInstructions);				mLicense = new MenuItem("License");		mLicense.addActionListener(this);		mHelp.add(mLicense);				mAbout = new MenuItem("About JavaMapper");		mAbout.addActionListener(this);		mHelp.add(mAbout);				menuBar.setHelpMenu(mHelp);		menuBar.add(mFile);		menuBar.add(mEdit);		menuBar.add(mView);		menuBar.add(mTool);		menuBar.add(mHelp);				setMenuBar(menuBar);	}	public void actionPerformed(ActionEvent e) {		MenuItem m = (MenuItem)(e.getSource());		String l = m.getLabel();		if (m==mOpenImage) openImage();		else if (m==mPreviewClient) previewClientMap();		else if (m==mPreviewServer) previewServerMap();		else if (m==mSaveClient) saveMap("client");		else if (m==mSaveServer) saveMap("server");		else if (m==mClose) closeImage();		else if (m==mExit) exit();		else if (m==mDeleteShape) canvas.tool.deleteShape();		else if (m==mDeleteAllShapes) canvas.tool.deleteAllShapes();		else if (m==mMapProp) showMapProperties();		else if (m==mInstructions) fileviewer.setFile("Instructions","README");		else if (m==mLicense) fileviewer.setFile("License","LICENSE");		else if (m==mAbout) fileviewer.setFile("About JavaMapper","ABOUT");	}		class ActivateSetTool implements ItemListener {		public void itemStateChanged(ItemEvent e) {			setTool((CheckboxMenuItem)(e.getSource()));		}	}		class PolyListener implements ActionListener {		public void actionPerformed(ActionEvent e) {			MenuItem m = (MenuItem)(e.getSource());			String l = m.getLabel();			System.out.println("menu "+l);			if (m==mPolyInsert) canvas.tool.insertPolyPoint();			if (m==mPolyDelete) canvas.tool.deletePolyPoint();		}	}	protected void openImage() {		if (openDialog == null) openDialog = new FileDialog(this,"Open Image",openDialog.LOAD);		openDialog.setDirectory("./example");		openDialog.setFile("example.gif");		openDialog.show();		path = openDialog.getDirectory();		String filename = openDialog.getFile();		String filepath = path+filename;		if (filename==null) return;		String filetest = filename.toLowerCase();		if (filetest.indexOf(".gif")==-1 && filetest.indexOf(".jpg")==-1 && filetest.indexOf(".jpeg")==-1) {			System.out.println("Error: not a GIF or JPG file");			return;		}		System.out.println("Trying to load "+filename+" ("+filepath+")");		Image image = Toolkit.getDefaultToolkit().getImage(filepath);		mediatracker.addImage(image,0);		try {			mediatracker.waitForAll();			canvas.loadImage(image,filename);			setTool(mRect);		}		catch (Exception e) {			System.out.println("Failed to load "+filename);			return;		}		setMenus(true);	}		public void closeImage() {		mapName="";		canvas.closeImage();		setMenus(false);	}		public void setMenus(boolean b) {		mRect.setEnabled(b);		mCircle.setEnabled(b);		mPoly.setEnabled(b);		mSelect.setEnabled(b);		mSaveClient.setEnabled(b);		mSaveServer.setEnabled(b);		mClose.setEnabled(b);	}		private void openMap() {		}		private void saveMap(String type) {		if (saveDialog == null) saveDialog = new FileDialog(this,"",openDialog.SAVE);		if (type=="client") saveDialog.setTitle("Save Client-Side Map");		else if (type=="client") saveDialog.setTitle("Save Client-Side Map");				if (path!=null) saveDialog.setDirectory(path);				if (type=="client") saveDialog.setFile("untitled.html");		if (type=="server") saveDialog.setFile("untitled.map");				saveDialog.show();		path = saveDialog.getDirectory();		String filename = saveDialog.getFile();		String filepath = path+filename;		if (filename==null) return;		try {		FileOutputStream file = new FileOutputStream(filepath);		DataOutputStream content = new DataOutputStream(file);		content.writeBytes(canvas.tool.getCode(type));		content.close();		file.close();		}		catch (Exception e) {			System.out.println("error writing file: "+filepath);			return;		}		System.out.println("successfully wrote file: "+filepath);	}		private void showMapProperties() {		propFrame.refresh();		propFrame.setVisible(true);	}		private void previewClientMap() {		previewFrame.setMode("client");		previewFrame.setVisible(true);	}		private void previewServerMap() {		previewFrame.setMode("server");		previewFrame.setVisible(true);	}		public void refreshDialogs() {		if (previewFrame.isShowing()) previewFrame.refresh();		if (propFrame.isShowing()) propFrame.refresh();	}		public void setTool(CheckboxMenuItem item) {		mRect.setState(false);		mCircle.setState(false);		mPoly.setState(false);		mSelect.setState(false);				item.setState(true);				String mode="";		if (item==mRect) mode = "rect";		else if (item==mCircle) mode = "circle";		else if (item==mPoly) mode = "poly";		else if (item==mSelect) mode = "select";		canvas.setTool(mode);	}		private void exit() {		System.out.println("Quitting.");		setVisible(false);		System.exit(0);	}}

⌨️ 快捷键说明

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