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

📄 mainform.java

📁 <Java编程精选集锦>随书源码
💻 JAVA
字号:
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;

import acad.*;
import com.ms.com.*;
	
/**
 * This class can take a variable number of parameters on the command
 * line. Program execution begins with the main() method. The class
 * constructor is not invoked unless an object of type 'mainForm' is
 * created in the main() method.
 */
public class mainForm extends Form
{
	IAcadApplication IApp;	
	IAcadDocument IDoc;
	IAcadModelSpace IMSpace;
	IAcadUtility IUtil;
	
	boolean boolAcadStarted = false;		//指示AutoCAD2000是否启动

	public mainForm()
	{
		// Required for Visual J++ Form Designer support
		initForm();		

		// TODO: Add any constructor code after initForm call
	}

	/**
	 * mainForm overrides dispose so it can clean up the
	 * component list.
	 */
	public void dispose()
	{
		super.dispose();
		components.dispose();
	}

	private void ID_FILE_STARTACAD_click(Object source, Event e)
	{
		if(boolAcadStarted == true)
			return;

		IApp = (IAcadApplication) new AcadApplication();
		if(IApp == null)
		{
			MessageBox.show("初始AutoCAD失败!");
			return;
		}			

		IApp.setVisible(true);
		IDoc = (IAcadDocument) IApp.getActiveDocument();
		IUtil = (IAcadUtility) IDoc.getUtility();
		IMSpace = (IAcadModelSpace) IDoc.getModelSpace();
		
		boolAcadStarted = true;
		
	}

	private void ID_FILE_QUITACAD_click(Object source, Event e)
	{
		if(boolAcadStarted == true)
		{
			IApp.Quit();
			boolAcadStarted = false;
		}	
	}

	private void ID_FILE_EXIT_click(Object source, Event e)
	{
		if(boolAcadStarted == true)
		{
			IApp.Quit();
			boolAcadStarted = false;
		}	
		
		Application.exit();
	}

	private void ID_DRAW_LINE_click(Object source, Event e)
	{
		if(boolAcadStarted == false)
			return;
				
		int hr = 0;
		Variant opt = new Variant();
		opt.VariantClear();
		opt.noParam();
		
		Variant pt1 = new Variant();
		pt1.VariantClear();
		Variant pt2 = new Variant();
		pt2.VariantClear();
			
		Variant prompt = new Variant();
		
		try
		{
			prompt.putString("第一点: ");
			pt1 = IUtil.GetPoint(opt, prompt);
		}
		catch(ComException except)
		{
			hr = except.getHResult();
		}
			
		if(hr == 0)
		{
			try
			{
				prompt.putString("第二点: ");
				pt2 = IUtil.GetPoint(pt1, prompt);
			}
			catch(ComException except)
			{
				hr = except.getHResult();
			}
		}
		
		if(hr == 0)
		{					
			IAcadLine ILine = (IAcadLine) IMSpace.AddLine(pt1, pt2);
			ILine.setColor(2);
			ILine.Highlight(true);
		}	
	}

	private void ID_DRAW_CIRCLE_click(Object source, Event e)
	{
		if(boolAcadStarted == false)
			return;
				
		int hr = 0;
		Variant opt = new Variant();
		opt.VariantClear();
		opt.noParam();
		
		Variant centerPt = new Variant();
		centerPt.VariantClear();
		double radus = 0.0;
		Variant prompt = new Variant();
			
		try
		{
			prompt.putString("中心点: ");
			centerPt = IUtil.GetPoint(opt, prompt);
		}
		catch(ComException except)
		{
			hr = except.getHResult();
		}
			
		if(hr == 0)
		{
			try
			{
				prompt.putString("半径: ");
				opt.VariantClear();
				opt.noParam();
				IUtil.InitializeUserInput(1+2,opt);
				radus = IUtil.GetDistance(centerPt,prompt);
			}
			catch(ComException except)
			{
				hr = except.getHResult();
			}
		}
		
		if(hr == 0)
		{					
			IAcadCircle ICirc = (IAcadCircle) IMSpace.AddCircle(centerPt, radus);
			ICirc.setColor(1);
		}
	}

	/**
	 * NOTE: The following code is required by the Visual J++ form
	 * designer.  It can be modified using the form editor.  Do not
	 * modify it using the code editor.
	 */
	Container components = new Container();
	MainMenu mainMenu = new MainMenu();
	MenuItem ID_MENU_FILE = new MenuItem();
	MenuItem ID_FILE_STARTACAD = new MenuItem();
	MenuItem ID_FILE_QUITACAD = new MenuItem();
	MenuItem menuItem4 = new MenuItem();
	MenuItem ID_FILE_EXIT = new MenuItem();
	MenuItem ID_MENU_DRAW = new MenuItem();
	MenuItem ID_DRAW_LINE = new MenuItem();
	MenuItem ID_DRAW_CIRCLE = new MenuItem();

	private void initForm()
	{
		ID_FILE_STARTACAD.setText("&Start AutoCAD");
		ID_FILE_STARTACAD.addOnClick(new EventHandler(this.ID_FILE_STARTACAD_click));

		ID_FILE_QUITACAD.setText("&Quit AutoCAD");
		ID_FILE_QUITACAD.addOnClick(new EventHandler(this.ID_FILE_QUITACAD_click));

		menuItem4.setText("-");

		ID_FILE_EXIT.setText("&Exit");
		ID_FILE_EXIT.addOnClick(new EventHandler(this.ID_FILE_EXIT_click));

		ID_MENU_FILE.setMenuItems(new MenuItem[] {
								  ID_FILE_STARTACAD, 
								  ID_FILE_QUITACAD, 
								  menuItem4, 
								  ID_FILE_EXIT});
		ID_MENU_FILE.setText("&File");

		ID_DRAW_LINE.setText("&Highlight Line");
		ID_DRAW_LINE.addOnClick(new EventHandler(this.ID_DRAW_LINE_click));

		ID_DRAW_CIRCLE.setText("&Red Circle");
		ID_DRAW_CIRCLE.addOnClick(new EventHandler(this.ID_DRAW_CIRCLE_click));

		ID_MENU_DRAW.setMenuItems(new MenuItem[] {
								  ID_DRAW_LINE, 
								  ID_DRAW_CIRCLE});
		ID_MENU_DRAW.setText("&Draw");

		mainMenu.setMenuItems(new MenuItem[] {
							  ID_MENU_FILE, 
							  ID_MENU_DRAW});
		/* @designTimeOnly mainMenu.setLocation(new Point(0, 8)); */

		this.setText("mainForm");
		this.setAutoScaleBaseSize(12);
		this.setClientSize(new Point(292, 273));
		this.setMenu(mainMenu);
	}

	/**
	 * The main entry point for the application. 
	 *
	 * @param args Array of parameters passed to the application
	 * via the command line.
	 */
	public static void main(String args[])
	{
		Application.run(new mainForm());
	}
}

⌨️ 快捷键说明

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