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

📄 browserexample.java

📁 eclips swt jface 第四部分实例篇
💻 JAVA
字号:
/**
 *@author: WangJinTao,MengQingChang2006
 */
package swtjfaceExample;

import java.net.*;
import org.eclipse.swt.*;
import org.eclipse.jface.action.*;
import org.eclipse.jface.window.*;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.jface.resource.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;

public class BrowserExample extends ApplicationWindow {
	private Browser browser;

	private Text text;

	private Label labelAddress;

	private Label labelStatus;

	public BrowserExample() {
		super(null);
		addToolBar(SWT.FLAT);
	}

	public void run() {
		setBlockOnOpen(true);
		open();
		Display.getCurrent().dispose();
	}

	protected void configureShell(Shell shell) {
		super.configureShell(shell);
		// 设置窗体大小
		shell.setSize(550, 350);
		shell.setText("Browser实例");
	}

	protected Control createContents(Composite parent) {
		Composite composite = new Composite(parent, SWT.NONE);
		composite.setLayout(new GridLayout(1, false));
		// 调用自定义方法
		createBrowser(composite);
		return composite;
	}

	private void createBrowser(Composite comp) {
		Composite composite = new Composite(comp, SWT.NONE);
		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
		composite.setLayout(new GridLayout(3, false));
		// 设置地址标签
		labelAddress = new Label(composite, SWT.NONE);
		labelAddress.setText("地址(&D)");
		// 设置地址文本框
		text = new Text(composite, SWT.BORDER);
		GridData gridText = new GridData(GridData.FILL_HORIZONTAL);
		text.setLayoutData(gridText);
		// 设置转到按钮
		Button buttonRun = new Button(composite, SWT.NULL);
		buttonRun.setImage(new Image(comp.getShell().getDisplay(),
				"icons/run.gif"));
		buttonRun.setToolTipText("转到");
		// 设置浏览器组件
		browser = new Browser(composite, SWT.BORDER);
		GridData gridBrowser = new GridData(GridData.FILL_BOTH);
		gridBrowser.horizontalSpan = 3;
		browser.setLayoutData(gridBrowser);
		// 设置状态标签
		labelStatus = new Label(composite, SWT.NULL);
		labelStatus.setText("准备");
		GridData gridlabelStatus = new GridData(GridData.FILL_HORIZONTAL);
		gridlabelStatus.horizontalSpan = 2;
		labelStatus.setLayoutData(gridlabelStatus);
		// 定义一个进度条
		final ProgressBar progressBar = new ProgressBar(composite, SWT.SMOOTH);
		Listener openURLListener = new Listener() {
			public void handleEvent(Event event) {
				// Browser获取文本内容,即获取用户输入的网址
				browser.setUrl(text.getText());
			}
		};
		buttonRun.addListener(SWT.Selection, openURLListener);
		text.addListener(SWT.DefaultSelection, openURLListener);
		browser.addLocationListener(new LocationListener() {
			public void changing(LocationEvent event) {
				// 显示网址的定位在文本地址文本框
				text.setText(event.location);
			}

			public void changed(LocationEvent event) {
			}
		});
		// 用进度条设置网页显示进度状态
		browser.addProgressListener(new ProgressListener() {
			public void changed(ProgressEvent event) {
				progressBar.setMaximum(event.total);
				progressBar.setSelection(event.current);
			}

			public void completed(ProgressEvent event) {
				progressBar.setSelection(0);
			}
		});
		// 标签用于显示网页显示状态
		browser.addStatusTextListener(new StatusTextListener() {
			public void changed(StatusTextEvent event) {
				labelStatus.setText(event.text);
			}
		});
	}

	protected ToolBarManager createToolBarManager(int style) {
		ToolBarManager toolBarManager = new ToolBarManager(style);
		// 通过Action动作来设置工具栏按钮相应的功能
		toolBarManager.add(new backwardAction());
		toolBarManager.add(new forwardAction());
		toolBarManager.add(new stopAction());
		toolBarManager.add(new refreshAction());
		// 为工具栏添加分隔符
		toolBarManager.add(new Separator());
		toolBarManager.add(new homeAction());
		return toolBarManager;
	}

	class backwardAction extends Action {
		public backwardAction() {
			// 设置提示性标签
			setToolTipText("后退");
			try {
				// 载入图像
				ImageDescriptor icon = ImageDescriptor.createFromURL(new URL(
						"file:icons/backward.gif"));
				setImageDescriptor(icon);
			} catch (MalformedURLException e) {
				System.err.println(e.getMessage());
			}
		}

		public void run() {
			browser.back();
		}
	}

	class forwardAction extends Action {
		public forwardAction() {
			setToolTipText("前进");
			try {
				ImageDescriptor icon = ImageDescriptor.createFromURL(new URL(
						"file:icons/forward.gif"));
				setImageDescriptor(icon);
			} catch (MalformedURLException e) {
				System.err.println(e.getMessage());
			}
		}

		public void run() {
			browser.forward();
		}
	}

	class stopAction extends Action {
		public stopAction() {
			setToolTipText("停止");
			try {
				ImageDescriptor icon = ImageDescriptor.createFromURL(new URL(
						"file:icons/stop.gif"));
				setImageDescriptor(icon);
			} catch (MalformedURLException e) {
				System.err.println(e.getMessage());
			}
		}

		public void run() {
			browser.stop();
		}
	}

	class refreshAction extends Action {
		public refreshAction() {
			setToolTipText("刷新");
			try {
				ImageDescriptor icon = ImageDescriptor.createFromURL(new URL(
						"file:icons/refresh.gif"));
				setImageDescriptor(icon);
			} catch (MalformedURLException e) {
				System.err.println(e.getMessage());
			}
		}

		public void run() {
			browser.refresh();
		}
	}

	class homeAction extends Action {
		public homeAction() {
			setToolTipText("主页");
			try {
				ImageDescriptor icon = ImageDescriptor.createFromURL(new URL(
						"file:icons/home.gif"));
				setImageDescriptor(icon);
			} catch (MalformedURLException e) {
				System.err.println(e.getMessage());
			}
		}

		public void run() {
			browser.setUrl("http://www.eclipse.org");
		}
	}

	public static void main(String[] args) {
		new BrowserExample().run();
	}
}

⌨️ 快捷键说明

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