62,614
社区成员
发帖
与我相关
我的任务
分享
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.CloseWindowListener;
import org.eclipse.swt.browser.LocationEvent;
import org.eclipse.swt.browser.LocationListener;
import org.eclipse.swt.browser.OpenWindowListener;
import org.eclipse.swt.browser.ProgressEvent;
import org.eclipse.swt.browser.ProgressListener;
import org.eclipse.swt.browser.StatusTextEvent;
import org.eclipse.swt.browser.StatusTextListener;
import org.eclipse.swt.browser.WindowEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
/**
* This class implements a web browser
*/
public class TestBrowser {
// The "at rest" text of the throbber
private Label throbber;
private Button button;
private Combo url;
private Button button_4;
private Button button_3;
private Browser browser;
private Browser browser2;
private Label status;
private Button button_2;
private Button button_1;
private static final String AT_REST = "Ready";
private String[] urlList = new String[256];
int urlListItemCount = 0;
/**
* Runs the application
*
* @param location
* the initial location to display
*/
public void run(String location) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Advanced Browser");
createContents(shell, location);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
/**
* Creates the main window's contents
*
* @param shell
* the main window
* @param location
* the initial location
*/
public void createContents(Shell shell, String location) {
shell.setLayout(new FormLayout());
// Create the composite to hold the buttons and text field
Composite controls = new Composite(shell, SWT.NONE);
FormData data = new FormData();
data.top = new FormAttachment(0, 0);
data.left = new FormAttachment(0, 0);
data.right = new FormAttachment(100, 0);
controls.setLayoutData(data);
// Create the status bar
status = new Label(shell, SWT.NONE);
data = new FormData();
data.left = new FormAttachment(0, 0);
data.right = new FormAttachment(100, 0);
data.bottom = new FormAttachment(100, 0);
status.setLayoutData(data);
// Create the web browser
browser = new Browser(shell, SWT.BORDER);
browser.addOpenWindowListener(new OpenWindowListener() {
public void open(WindowEvent arg0) {
String urlStr = arg0.browser.getUrl();
int flag = 1;
browser.setVisible(false);
browser2.setVisible(true);
arg0.browser = browser2;
for (int i = 0; i < urlListItemCount; i++) {
if (urlList[i].equals(urlStr)) {
flag = 0;
}
}
if (flag == 1) {
urlList[urlListItemCount] = urlStr;
url.add(urlStr);
url.setText(urlStr);
urlListItemCount++;
}
.
.
.
.
.
....................剩下代码在
http://blogold.chinaunix.net/u/29346/showart_317457.html
import java.util.ArrayList;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.OpenWindowListener;
import org.eclipse.swt.browser.VisibilityWindowListener;
import org.eclipse.swt.browser.WindowEvent;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class BrowserTest1 {
static final ArrayList urls = new ArrayList(); // @jve:decl-index=0:
static boolean canRemove = false;
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("jog36行业招聘");
Image image = new Image(shell.getDisplay(), "Favicon.ico");
shell.setImage(image);
shell.setLayout(new FillLayout());
Browser browser = new Browser(shell, SWT.NONE);
initialize(display, browser);
shell.open();
browser.setUrl("www.job36.com");
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
static void initialize(final Display display, Browser browser) {
browser.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event event) {
System.out.println("event.time:" + event.time);
}
});
browser.addOpenWindowListener(new OpenWindowListener() {
public void open(WindowEvent event) {
// Embed the new window
final Shell shell = new Shell(display);
shell.setText("New Window");
shell.setLayout(new FillLayout());
final Browser browser = new Browser(shell, SWT.NONE);
initialize(display, browser);
event.browser = browser;
event.display.asyncExec(new Runnable() {
public void run() {
String url = browser.getUrl();
System.out.println(url);
System.out.println(browser.getText());
if (urls.contains(url)){
//flag to chek if the window is closed automatic
canRemove = false;
shell.close();
}
else{
canRemove = true;
urls.add(url);
}
}
});
}
});
browser.addVisibilityWindowListener(new VisibilityWindowListener() {
public void hide(WindowEvent event) {
Browser browser = (Browser) event.widget;
Shell shell = browser.getShell();
shell.setVisible(false);
}
public void show(WindowEvent event) {
Browser browser = (Browser) event.widget;
Shell shell = browser.getShell();
if (event.location != null)
shell.setLocation(event.location);
if (event.size != null) {
Point size = event.size;
shell.setSize(shell.computeSize(size.x, size.y));
}
if (event.addressBar || event.menuBar || event.statusBar
|| event.toolBar) {
// Create widgets for the address bar, menu bar, status bar and/or tool bar
// leave enough space in the Shell to accomodate a Browser of the size
// given by event.size
}
shell.open();
}
});
browser.addDisposeListener(new DisposeListener(){
public void widgetDisposed(DisposeEvent event){
Browser browser = (Browser) event.widget;
if (canRemove)
urls.remove(browser.getUrl());
Shell shell = browser.getShell();
// shell.close();
}
});
}
}