`

SWT 浏览器

阅读更多


 这个来自书上的一个例子:

package firstSWT;

import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;

public class SimpleSWTBrowser {

	//定义浏览器的标题
	public static final String APP_TITLE = "Simple SWT Browser";
	//定义主页的url
	public static final String HOME_URL = "http://www.eclipse.org";
	//声明主窗口和其它控件
	private org.eclipse.swt.widgets.Shell sShell = null;
	private Button backButton = null;//后退按钮
	private Button forwardButton = null;//前进按钮
	private Button stopButton = null;//停止按钮
	private Text locationText = null;//显示url的文本框
	private Button goButton = null;//转向按钮
	private Browser browser = null;//浏览器对象
	private Button homeButton = null;//主页按钮
	private Label statusText = null;//显示浏览器状态的文本框
	private ProgressBar progressBar = null;//装载页面时的进度条
	private Button refreshButton = null;//刷新按钮

	//初始化浏览器
	private void createBrowser() {
		org.eclipse.swt.layout.GridData gridData3 = new org.eclipse.swt.layout.GridData();
		//创建浏览器对象
		browser = new Browser(sShell, SWT.BORDER);
		gridData3.horizontalSpan = 7;
		gridData3.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData3.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData3.grabExcessVerticalSpace = true;
		//设置浏览器布局
		browser.setLayoutData(gridData3);
		//为浏览器注册标题改变事件
		browser.addTitleListener(new org.eclipse.swt.browser.TitleListener() {
			public void changed(org.eclipse.swt.browser.TitleEvent e) {
				sShell.setText(APP_TITLE + " - " + e.title);
			}
		});
		//为浏览器注册地址改变事件
		browser.addLocationListener(new org.eclipse.swt.browser.LocationListener() {
			public void changing(org.eclipse.swt.browser.LocationEvent e) {
				locationText.setText(e.location);
			}

			public void changed(org.eclipse.swt.browser.LocationEvent e) {
			}
		});
		//为浏览器注册装载网页事件
		browser.addProgressListener(new org.eclipse.swt.browser.ProgressListener() {
			//当装载时,设置装载的进度,并且设置停止按钮可用
			public void changed(org.eclipse.swt.browser.ProgressEvent e) {
				if (!stopButton.isEnabled() && e.total != e.current) {
					stopButton.setEnabled(true);
				}
				progressBar.setMaximum(e.total);
				progressBar.setSelection(e.current);
			}
			//装载完成后设置停止按钮,后退按钮,前进按钮和进度条的状态
			public void completed(org.eclipse.swt.browser.ProgressEvent e) {
				stopButton.setEnabled(false);
				backButton.setEnabled(browser.isBackEnabled());
				forwardButton.setEnabled(browser.isForwardEnabled());
				progressBar.setSelection(0);
			}
		});
		//注册浏览器状态改变事件
		browser.addStatusTextListener(new org.eclipse.swt.browser.StatusTextListener() {
			public void changed(org.eclipse.swt.browser.StatusTextEvent e) {
				statusText.setText(e.text);
			}
		});
		//初始状态打开主页的url
		browser.setUrl(HOME_URL);
	}
	
	public static void main(String[] args) {
		org.eclipse.swt.widgets.Display display = org.eclipse.swt.widgets.Display.getDefault();
		SimpleSWTBrowser thisClass = new SimpleSWTBrowser();
		thisClass.createSShell();
		thisClass.sShell.open();

		while (!thisClass.sShell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}

	//创建窗口和窗口的控件
	private void createSShell() {
		sShell = new org.eclipse.swt.widgets.Shell();
		org.eclipse.swt.layout.GridLayout gridLayout1 = new GridLayout();
		org.eclipse.swt.layout.GridData gridData2 = new org.eclipse.swt.layout.GridData();
		org.eclipse.swt.layout.GridData gridData4 = new org.eclipse.swt.layout.GridData();
		org.eclipse.swt.layout.GridData gridData5 = new org.eclipse.swt.layout.GridData();
		org.eclipse.swt.layout.GridData gridData6 = new org.eclipse.swt.layout.GridData();
		org.eclipse.swt.layout.GridData gridData7 = new org.eclipse.swt.layout.GridData();
		org.eclipse.swt.layout.GridData gridData8 = new org.eclipse.swt.layout.GridData();
		backButton = new Button(sShell, SWT.ARROW | SWT.LEFT);
		forwardButton = new Button(sShell, SWT.ARROW | SWT.RIGHT);
		stopButton = new Button(sShell, SWT.NONE);
		refreshButton = new Button(sShell, SWT.NONE);
		homeButton = new Button(sShell, SWT.NONE);
		locationText = new Text(sShell, SWT.BORDER);
		goButton = new Button(sShell, SWT.NONE);
		createBrowser();
		progressBar = new ProgressBar(sShell, SWT.BORDER);
		statusText = new Label(sShell, SWT.NONE);
		sShell.setText(APP_TITLE);
		sShell.setLayout(gridLayout1);
		gridLayout1.numColumns = 7;
		backButton.setEnabled(false);
		backButton.setToolTipText("Navigate back to the previous page");
		backButton.setLayoutData(gridData6);
		forwardButton.setEnabled(false);
		forwardButton.setToolTipText("Navigate forward to the next page");
		forwardButton.setLayoutData(gridData5);
		stopButton.setText("Stop");
		stopButton.setEnabled(false);
		stopButton.setToolTipText("Stop the loading of the current page");
		goButton.setText("Go!");
		goButton.setLayoutData(gridData8);
		goButton.setToolTipText("Navigate to the selected web address");
		gridData2.grabExcessHorizontalSpace = true;
		gridData2.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData2.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
		locationText.setLayoutData(gridData2);
		locationText.setText(HOME_URL);
		locationText.setToolTipText("Enter a web address");
		homeButton.setText("Home");
		homeButton.setToolTipText("Return to home page");
		statusText.setText("Done");
		statusText.setLayoutData(gridData7);
		gridData4.horizontalSpan = 5;
		progressBar.setLayoutData(gridData4);
		progressBar.setEnabled(false);
		progressBar.setSelection(0);
		gridData5.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData5.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData6.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData6.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData7.horizontalSpan = 1;
		gridData7.grabExcessHorizontalSpace = true;
		gridData7.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
		gridData7.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
		gridData8.horizontalAlignment = org.eclipse.swt.layout.GridData.END;
		gridData8.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
		refreshButton.setText("Refresh");
		refreshButton.setToolTipText("Refresh the current page");
		sShell.setSize(new org.eclipse.swt.graphics.Point(553, 367));
		//注册显示地址的文本框事件
		locationText.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
			public void mouseUp(org.eclipse.swt.events.MouseEvent e) {
				locationText.selectAll();
			}
		});
		locationText.addKeyListener(new org.eclipse.swt.events.KeyAdapter() {
			public void keyPressed(org.eclipse.swt.events.KeyEvent e) {
				// Handle the press of the Enter key in the locationText.
				// This will browse to the entered text.
				if (e.character == SWT.LF || e.character == SWT.CR) {
					e.doit = false;
					browser.setUrl(locationText.getText());
				}
			}
		});
		refreshButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				browser.refresh();//重新载入
			}
		});
		locationText.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				browser.setUrl(locationText.getText());//设置浏览器的指向的url
			}
		});
		stopButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				browser.stop();//停止装载网页
			}
		});
		backButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				browser.back();//后退
			}
		});
		forwardButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				browser.forward();//前进
			}
		});
		homeButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				browser.setUrl(HOME_URL);//设置主页
			}
		});
		goButton.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
				browser.setUrl(locationText.getText());//转向地址的网页
			}
		});
	}
}

 

效果图:



 

  • 大小: 71.1 KB
分享到:
评论

相关推荐

    java swt浏览器64位插件

    当开发环境或JDK是64位时,由于系统兼容性问题,通常不能直接使用32位的SWT浏览器组件,因此寻找并使用64位的SWT插件就显得尤为重要。 SWT是Eclipse基金会提供的一种GUI库,它使Java开发者能够利用操作系统原生的...

    java数字签名,md5大小文件验证,DES加密解密RSA加密解密,SWT浏览器插件的等源码工程实例

    5. **SWT浏览器插件**:SWT(Standard Widget Toolkit)是Java的一个GUI库,提供了与操作系统原生控件的交互能力。`WebBrowsers.java`可能实现了使用SWT创建浏览器组件的功能,允许在Java应用程序内嵌入Web浏览器,...

    在SWING、SWT中嵌入浏览器

    这篇博客文章“在SWING、SWT中嵌入浏览器”就探讨了如何在Java应用中实现这一功能。 首先,SWING是Java Foundation Classes (JFC)的一部分,提供了丰富的组件和布局管理器来构建复杂的用户界面。尽管SWING本身并不...

    SWT Browser(内嵌浏览器)所需SWTResourceManager Jar包

    SWT Browser(内嵌浏览器)所需SWTResourceManager Jar包

    SWT Java 浏览器

    一个功能最完善的多标签浏览器,有收藏夹功能。经过本人不断修改,几乎是网上所有JAVA浏览器最好的。绝对不会让你失望。 有问题请联系:waiting.hao@gmail.com或代码中的邮箱。 ...需要自己下载SWT哦。

    SWT java浏览器

    - **保存**:SWT浏览器组件允许用户保存当前页面到本地文件系统,这通常通过提供一个菜单项或按钮来实现,调用`Browser`对象的`saveAs`方法完成。 - **打开**:用户可以打开新的URL,通过`setUrl`方法将指定的URL...

    java swt 浏览器

    自己写的java浏览器的源代码 使用的是swt做得界面 实现了浏览器的基本功能 重点是新窗口打开的处理 鉴于有人说我是骗子,特此申明 下载里面只有源代码和引用的SWT包, classpath包括进去的,可以直接用Eclipse导入 ...

    最全的SWT示例(绝对最全),上次文件损坏了,重传个

    这是我找到的最全的SWT示例,即使在官方网站上也非常难找,示例包括以下内容:SWT模式窗体,SWT浏览器,SWT树,SWT工具条,SWT画图工具,SWT图形,SWT各种布局,SWT剪贴板,SWT快捷键,SWT菜单,SWT文本编辑器,SWT...

    各ui框架下的Java浏览器(包含swt的浏览器,javafx的浏览器,swing的浏览器),支持Flash

    Java自制浏览器,支持Flash,各个版本的ui框架都有,具备所有IE内核具备的功能,拓展功能比如F5,比如前进后退,比如查看源代码,键盘...里面包含javafx的,swing的,swt三个版本的java浏览器,功能强大,供大家对比

    JAVA SWT 多标签浏览器

    JAVA SWT 多标签浏览器是一种利用Java编程语言和SWT(Standard Widget Toolkit)库构建的应用程序,它可以实现类似于浏览器的多标签界面,用户可以在同一程序中打开和管理多个网页。SWT是Eclipse基金会开发的一个...

    org.eclipse.swt相关所有jar包,

    "BrowserFunction"可能指的是SWT浏览器控件的高级特性或自定义扩展。这些可能包括了自定义的URL处理器、JavaScript扩展、或者是对浏览器事件的特殊处理。通过这些功能,开发者可以进一步定制浏览器的行为,使其更好...

    SWT开发的浏览器(Java)--源代码

    本项目以SWT为工具,开发了一个简单的Java浏览器,实现了浏览网页的基本功能。通过分析这个源代码,我们可以深入理解SWT如何被用来构建具有实际应用价值的程序。 首先,我们要了解SWT的优势。与Java标准库中的AWT和...

    SWT jar包开发程序必备

    SWTjar包 SWT浏览器开发包,很有用的!!

    嵌入浏览器需要.rar

    `lib`目录通常包含各种库文件,这些文件可能与特定平台上的XULRunner或者SWT浏览器组件的运行有关。这些库文件可能包括动态链接库(如.dll文件在Windows上,.so文件在Linux上)或其他必要的资源,它们确保了在不同...

    swt win32 3.7

    swt浏览器界面32位

    chromium.swt:SWT的Chromium小部件

    使用与其他SWT浏览器相同的API,可以轻松地将其嵌入Eclipse视图中。 不再为每个平台定制代码,不再为Linux安装特定的库,在Windows中使用IE不再出现问题,也不再存在与平台有关和与浏览器有关的问题。 这是一个真正...

    java源码屏幕刷新-javacef:在JavaSWT中嵌入Chromium浏览器。(以前是code.google.com/p/javacef

    浏览器,支持多标签浏览器、cookie 操作、标签设置、打印、后退、前进、刷新按钮和增强的文件下载。 该项目基于(CEF)。 背景:javacef 为什么要开源? 我在 2012 年夏天找到了一份工作来制作一个界面,以便在 Java...

    SWT Browser浏览器小程序

    用SWT 组建实现一个简单的浏览器实例。具有搜索功能,

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    这个压缩包文件“Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)”显然提供了一个实现这一功能的示例,主要涉及到的技术是DJnative-SWT和SWT。 DJnative-SWT 是一个开源项目,它的目标是将Java和...

    基于SWT组件的IE内核Java简易浏览器

    **基于SWT组件的IE内核Java简易浏览器** 在Java编程世界中,开发一款简易的浏览器是一项有趣的挑战,尤其当涉及到用户界面(UI)的设计时。SWT(Standard Widget Toolkit)是Eclipse基金会提供的一种GUI库,它允许...

Global site tag (gtag.js) - Google Analytics