form1.java

来自「java internet 浏览器:一个java编写的web浏览器」· Java 代码 · 共 275 行

JAVA
275
字号
import com.ms.wfc.app.*;
import com.ms.wfc.core.*;
import com.ms.wfc.ui.*;
import com.ms.wfc.html.*;

/**
 * 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 'Form1' is
 * created in the main() method.
 */
public class Form1 extends Form
{
	private String address="";
	public Form1()
	{
		// Required for Visual J++ Form Designer support
		initForm();
	}

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

	private void toolBar_buttonClick(Object source, ToolBarButtonClickEvent e)
	{
		if (e.button == backButton)
		{
			
			try
			{
				webBrowser.GoBack();
			}
			catch (com.ms.com.ComFailException exc)
			{
				MessageBox.show("Error,there is nowhere to goback!",
								"Internet explorer",MessageBox.ICONERROR);
			}
		}
		else if (e.button == forwardButton)
		{
			try
			{
				webBrowser.GoForward();
			}
			catch (com.ms.com.ComFailException exc)
			{
				MessageBox.show("Error,there is nowhere to goforward!",
								"Internet explorer",MessageBox.ICONERROR);
			}
		}
		else if (e.button == homeButton)
		{
			try
			{
				webBrowser.GoHome();
			}
			catch (com.ms.com.ComFailException exc){}			
		}
		else if (e.button == browserButton)
		{
			try
			{
				webBrowser.Navigate(address,null,null,null,null);
			}
			catch (com.ms.com.ComFailException exc){}
		}
		else if (e.button == refreshButton)
		{
			try
			{
				webBrowser.Refresh();
				address=webBrowser.getLocationURL();
				edit.setText(address);
			}
			catch (com.ms.com.ComFailException exc){}
		}
		else if (e.button == stopButton)
		{
			try
			{
				webBrowser.Stop();
			}
			catch (com.ms.com.ComFailException exc){}
		}
		else if (e.button == exitButton)
		{
			Application.exit();
		}
		else {}
	}
	
	private void edit_textChanged(Object source, Event e)
	{
		address=edit.getText();
	}

	private void edit_keyPress(Object source, KeyPressEvent e)
	{
		if(e.keyChar==Key.RETURN)
		{
			try
			{
				webBrowser.Navigate(address,null,null,null,null);
			}
			catch (com.ms.com.ComFailException exc){}
		}
	}
	
	private void webBrowser_documentComplete(Object source, shdocvw.WebBrowser.DocumentCompleteEvent e)
	{
		address=webBrowser.getLocationURL();
		edit.setText(address);
	}

	/**
	 * 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();
	ToolBar toolBar = new ToolBar();
	ImageList imageList = new ImageList();
	ToolBarButton backButton = new ToolBarButton();
	ToolBarButton forwardButton = new ToolBarButton();
	ToolBarButton homeButton = new ToolBarButton();
	ToolBarButton seperateButton2 = new ToolBarButton();
	ToolBarButton browserButton = new ToolBarButton();
	ToolBarButton refreshButton = new ToolBarButton();
	ToolBarButton stopButton = new ToolBarButton();
	ToolBarButton seperateButton1 = new ToolBarButton();
	ToolBarButton exitButton = new ToolBarButton();
	shdocvw.WebBrowser.WebBrowser webBrowser = new shdocvw.WebBrowser.WebBrowser();
	Label label1 = new Label();
	Edit edit = new Edit();

	private void initForm()
	{
		// NOTE:  This form is storing resource information in an
		// external file.  Do not modify the string parameter to any
		// resources.getObject() function call. For example, do not
		// modify "foo1_location" in the following line of code
		// even if the name of the Foo object changes: 
		//   foo1.setLocation((Point)resources.getObject("foo1_location"));

		IResourceManager resources = new ResourceManager(this, "Form1");
		this.setFont(new Font("宋体", 11.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		this.setText("网络浏览器");
		this.setAutoScaleBaseSize(new Point(7, 14));
		this.setClientSize(new Point(577, 405));
		this.setIcon((Icon)resources.getObject("this_icon"));

		components.add(imageList, "imageList");
		imageList.setImageStream((ImageListStreamer)resources.getObject("imageList_imageStream"));
		/* @designTimeOnly imageList.setLocation(new Point(456, 15)); */

		components.add(backButton, "backButton");
		backButton.setImageIndex(0);
		backButton.setItemData("");
		backButton.setText("后退");
		backButton.setToolTipText("后退");

		components.add(forwardButton, "forwardButton");
		forwardButton.setImageIndex(1);
		forwardButton.setText("前进");
		forwardButton.setToolTipText("前进");

		components.add(homeButton, "homeButton");
		homeButton.setImageIndex(2);
		homeButton.setText("主页");
		homeButton.setToolTipText("主页");

		components.add(seperateButton2, "seperateButton2");
		seperateButton2.setStyle(ToolBarButtonStyle.SEPARATOR);

		components.add(browserButton, "browserButton");
		browserButton.setImageIndex(3);
		browserButton.setText("浏览");
		browserButton.setToolTipText("浏览");

		components.add(refreshButton, "refreshButton");
		refreshButton.setImageIndex(4);
		refreshButton.setText("刷新");
		refreshButton.setToolTipText("刷新");

		components.add(stopButton, "stopButton");
		stopButton.setImageIndex(5);
		stopButton.setText("停止");
		stopButton.setToolTipText("停止");

		components.add(seperateButton1, "seperateButton1");
		seperateButton1.setStyle(ToolBarButtonStyle.SEPARATOR);

		components.add(exitButton, "exitButton");
		exitButton.setImageIndex(6);
		exitButton.setText("退出");
		exitButton.setToolTipText("退出");

		components.add(toolBar, "toolBar");
		toolBar.setAllowDrop(true);
		toolBar.setFont(new Font("宋体", 11.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		toolBar.setSize(new Point(577, 44));
		toolBar.setTabIndex(1);
		toolBar.setAppearance(ToolBarAppearance.FLAT);
		toolBar.setButtons(new ToolBarButton[] {
						   backButton, 
						   forwardButton, 
						   homeButton, 
						   seperateButton2, 
						   browserButton, 
						   refreshButton, 
						   stopButton, 
						   seperateButton1, 
						   exitButton});
		toolBar.setButtonSize(new Point(60, 40));
		toolBar.setDropDownArrows(true);
		toolBar.setImageList(imageList);
		toolBar.setWrappable(false);
		toolBar.setShowToolTips(true);
		toolBar.addOnButtonClick(new ToolBarButtonClickEventHandler(this.toolBar_buttonClick));

		components.add(webBrowser, "webBrowser");
		webBrowser.setAnchor(ControlAnchor.ALL);
		webBrowser.setLocation(new Point(0, 72));
		webBrowser.setSize(new Point(577, 336));
		webBrowser.setTabIndex(2);
		webBrowser.setOcxState((AxHost.State)resources.getObject("webBrowser_ocxState"));
		webBrowser.addOnDocumentComplete(new shdocvw.WebBrowser.DocumentCompleteHandler(this.webBrowser_documentComplete));

		components.add(label1, "label1");
		label1.setFont(new Font("宋体", 11.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		label1.setLocation(new Point(9, 46));
		label1.setSize(new Point(45, 18));
		label1.setTabIndex(4);
		label1.setTabStop(false);
		label1.setText("地址:");

		components.add(edit, "edit");
		edit.setAnchor(ControlAnchor.TOPLEFTRIGHT);
		edit.setFont(new Font("Times New Roman", 11.0f, FontSize.POINTS, FontWeight.NORMAL, false, false, false, CharacterSet.DEFAULT, 0));
		edit.setLocation(new Point(44, 42));
		edit.setSize(new Point(532, 23));
		edit.setTabIndex(0);
		edit.setText("");
		edit.addOnKeyPress(new KeyPressEventHandler(this.edit_keyPress));
		edit.addOnTextChanged(new EventHandler(this.edit_textChanged));

		this.setNewControls(new Control[] {
							edit, 
							label1, 
							webBrowser, 
							toolBar});

		webBrowser.begin();
	}

	/**
	 * 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 Form1());
	}
}

⌨️ 快捷键说明

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