《Eclipse SWT/JFACE 核心应用》 清华大学出版社 9.12 浏览器
◆ CloseWindowListener:当关闭浏览器时所触发的事件。
◆ LocationListener:当浏览器转到另一个地址时所触发的事件。
◆ OpenWindowListener:当打开一个浏览器窗口时触发的事件。
◆ ProgressListener:当装载一个网页时进行的事件。
◆ StatusTextListener:当浏览器状态栏改变时触发的事件。
◆ TitleListener:当浏览器标题改变时触发的事件。
◆ VisibilityWindowListener:当浏览器窗口隐藏或显示时触发的事件。
package www.swt.com.ch9;
import org.eclipse.swt.layout.GridLayout;
public class SimpleSWTBrowser {
//定义浏览器的标题
public static final String APP_TITLE = "Simple SWT Browser";
//定义主页的url
public static final String HOME_URL = "http://www.eclipse.org/vep/";
//声明主窗口和其它控件
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());//转向地址的网页
}
});
}
}
显示效果:
分享到:
相关推荐
SWT Browser(内嵌浏览器)所需SWTResourceManager Jar包
用SWT 组建实现一个简单的浏览器实例。具有搜索功能,
导入Eclipse方法: 1.解压zip,找出2个jar文件,放入一个你想放的文件夹中 2.右键Eclipse中的工程,选择Build Path->Configure Build Path 3.选择Add External Jar,选择解压得到的2个jar即可
SWT无边框窗体实现鼠标拖动移动,并添加右键菜单关闭功能
NULL 博文链接:https://gxblluojialin.iteye.com/blog/2028156
利用SWT开发的一个简易浏览器~~~浏览器所应具备的基本功能都有~~源码~~~附带swt jar包
java 实现的图片浏览器 打开 上一张 下一张 删除等功能
解决svg在各种浏览器从显示的问题,在IE等不支持SVG图的浏览器中,现在不需要下载adobe的插件也可以正常显示。
git 地址 https://github.com/maketechnology/chromium.swt
SWT 中嵌入 Chromium 浏览器,支持多标签浏览器、cookie 操作、标签设置、打印、后退、前进、刷新按钮和增强的文件下载。 该项目基于(CEF)。 背景:javacef 为什么要开源? 我在 2012 年夏天找到了一份工作来制作...
代码如下: 代码如下:package swt_jface.demo6; import java.io.File; import java.util.Date; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics....
org.eclipse.swt.browser.Browser.class org.eclipse.swt.browser.BrowserFactory.class org.eclipse.swt.browser.BrowserFunction.class org.eclipse.swt.browser.CloseWindowListener.class org.eclipse.swt....
swt嵌入视频播放器的,想要看着方面的内容的可以来看看
SWT用Chrome嵌入跨平台Chromium浏览器的SWT小部件。 它可以在Windows,Mac OS和Linux上运行。 这个新的小部件允许在Java SWT或Eclipse RCP应用程序中开发现代的Web UI。 使用与其他SWT浏览器相同的API,可以轻松地将...
SWT源码以及示例,源码包含swt,accessibility,browser,custom,events,graphics,layout,widgets等。同时有一些SWT简单的应用示例,如利用SWT做一些图形界面,做通讯簿,浏览器,文本编辑器等等
SWT内嵌火狐浏览器源码使用javafx,可更换皮肤。不依赖客户端浏览器
eclipseSwt swt-3.5M4-win32-win32-x86.zip 包含browser包内容,可以做java浏览器内嵌等功能包
Eclipse-plugins 插件,eclipse 各种插件 .jar 包,免费下载 eclipse202106 -plugins 各种插件 .jar 包,免费下载 如果下载不了,关注我,评论区联系我, Eclipse-plugins eclipse, plugins, eclipse202106, ...
代码如下: BrowserExample.java 代码如下:package swt_jface.demo5; import java.text.... import org.eclipse.swt.browser.Browser; import org.eclipse.swt.browser.CloseWindowListener; import org.ecli