当前位置: 代码迷 >> Eclipse >> 问一个关于 SWT browser 的有关问题
  详细解决方案

问一个关于 SWT browser 的有关问题

热度:558   发布时间:2016-04-23 13:57:33.0
问一个关于 SWT browser 的问题
准备用SWT boowser 做一个简易的浏览器。不过在下面的代码中,当用这个浏览器浏览页面,点击链接后,弹出的页面会自动变成系统默认的IE浏览器,请教下怎么才能还是用这个浏览器打开
这个是主程序:
package Basic;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;

import Basic.MenuComposite;
import Basic.BrowserTest3;
public class AllComposite 
{
  public static void main(String args[])
  {
Display display=new Display();
  Shell shell=new Shell(display);
  MenuComposite menu=new MenuComposite();
  BrowserTest3 bt3=new BrowserTest3();
  Menu menu1=menu.MenuComposite(shell);
  Browser browser =new Browser(shell, SWT.NONE);
  bt3.initialize(display, browser);
  browser.setUrl("http://www.baidu.com");
  shell.setLayout(new FillLayout()); 
  shell.open(); 

   
  while (!shell.isDisposed()) { 
if (!display.readAndDispatch()) 

display.sleep(); 

display.dispose(); 
  }
}
这个是浏览器程序
package Basic;
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.browser.*;


public class BrowserTest3
{
public static void main(String[] args) {
Display display = new Display();
Shell shell =new Shell(display);

shell.setLayout(new FillLayout());
Browser browser =new Browser(shell, SWT.NONE);
initialize(display, browser);
 

  shell.open();
/* any website with popups */

  browser.setUrl("http://10.66.1.9");
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}


static void initialize(final Display display, Browser browser) 
{
browser.addOpenWindowListener(new OpenWindowListener() 
{
public void open(WindowEvent event)
{
Shell shell =new Shell(display);
// shell.setText("New Window");
 
MenuComposite menu=new MenuComposite();
BrowserTest3 bt3=new BrowserTest3();
Menu menu1=menu.MenuComposite(shell);
Browser browser =new Browser(shell, SWT.NONE);
bt3.initialize(display,browser);
event.browser =browser;

 
}
}
);
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;
final Shell shell = browser.getShell();
/* popup blocker - ignore window= s with no style */
if (!event.addressBar && !event.menuBar==!event.statusBar && !event.toolBar) {
System.out.println("Popup blocked.");
event.display.asyncExec(new Runnable() {
public void run() {
shell.close();
;}
});
return;
}
if (event.location != null) shell.setLocation(event.location);
if (event.size !=null) {
Point size = event.size;
shell.setSize(shell.computeSize(size.x, size.y));
}
shell.open();
  相关解决方案