高级浏览器 : 浏览器 « SWT « Java 教程

En
Java 教程
1. 语言基础
2. 数据类型
3. 操作符
4. 流程控制
5. 类定义
6. 开发相关
7. 反射
8. 正则表达式
9. 集合
10. 线
11. 文件
12. 泛型
13. 本土化
14. Swing
15. Swing事件
16. 二维图形
17. SWT
18. SWT 二维图形
19. 网络
20. 数据库
21. Hibernate
22. JPA
23. JSP
24. JSTL
25. Servlet
26. Web服务SOA
27. EJB3
28. Spring
29. PDF
30. 电子邮件
31. 基于J2ME
32. J2EE应用
33. XML
34. 设计模式
35. 日志
36. 安全
37. Apache工具
38. 蚂蚁编译
39. JUnit单元测试
Java
Java 教程 » SWT » 浏览器 
17. 86. 16. 高级浏览器
高级浏览器
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.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.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class AdvancedBrowser {
  private static final String AT_REST = "Ready";

  public AdvancedBrowser(String location) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Advanced Browser");
    
    shell.setLayout(new FormLayout());

    Composite controls = new Composite(shell, SWT.NONE);
    FormData data = new FormData();
    data.top = new FormAttachment(00);
    data.left = new FormAttachment(00);
    data.right = new FormAttachment(1000);
    controls.setLayoutData(data);

    Label status = new Label(shell, SWT.NONE);
    data = new FormData();
    data.left = new FormAttachment(00);
    data.right = new FormAttachment(1000);
    data.bottom = new FormAttachment(1000);
    status.setLayoutData(data);

    final Browser browser = new Browser(shell, SWT.BORDER);
    data = new FormData();
    data.top = new FormAttachment(controls);
    data.bottom = new FormAttachment(status);
    data.left = new FormAttachment(00);
    data.right = new FormAttachment(1000);
    browser.setLayoutData(data);

    controls.setLayout(new GridLayout(7false));

    Button button = new Button(controls, SWT.PUSH);
    button.setText("Back");
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent event) {
        browser.back();
      }
    });

    button = new Button(controls, SWT.PUSH);
    button.setText("Forward");
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent event) {
        browser.forward();
      }
    });

    button = new Button(controls, SWT.PUSH);
    button.setText("Refresh");
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent event) {
        browser.refresh();
      }
    });

    button = new Button(controls, SWT.PUSH);
    button.setText("Stop");
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent event) {
        browser.stop();
      }
    });

    final Text url = new Text(controls, SWT.BORDER);
    url.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    url.setFocus();

    button = new Button(controls, SWT.PUSH);
    button.setText("Go");
    button.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent event) {
        browser.setUrl(url.getText());
      }
    });

    Label throbber = new Label(controls, SWT.NONE);
    throbber.setText(AT_REST);

    shell.setDefaultButton(button);

    browser.addCloseWindowListener(new AdvancedCloseWindowListener());
    browser.addLocationListener(new AdvancedLocationListener(url));
    browser.addProgressListener(new AdvancedProgressListener(throbber));
    browser.addStatusTextListener(new AdvancedStatusTextListener(status));

    // Go to the initial URL
    if (location != null) {
      browser.setUrl(location);
    }

    
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }
  class AdvancedCloseWindowListener implements CloseWindowListener {
    public void close(WindowEvent event) {
      ((Browserevent.widget).getShell().close();
    }
  }

  class AdvancedLocationListener implements LocationListener {
    private Text location;

    public AdvancedLocationListener(Text text) {
      location = text;
    }

    public void changing(LocationEvent event) {
      location.setText("Loading " + event.location + "...");
    }

    public void changed(LocationEvent event) {
      location.setText(event.location);
    }
  }

  class AdvancedProgressListener implements ProgressListener {
    private Label progress;

    public AdvancedProgressListener(Label label) {
      progress = label;
    }

    public void changed(ProgressEvent event) {
      if (event.total != 0) {
        int percent = (int) (event.current / event.total);
        progress.setText(percent + "%");
      else {
        progress.setText("?");
      }
    }

    public void completed(ProgressEvent event) {
      progress.setText(AT_REST);
    }
  }

  class AdvancedStatusTextListener implements StatusTextListener {
    private Label status;

    public AdvancedStatusTextListener(Label label) {
      status = label;
    }

    public void changed(StatusTextEvent event) {
      status.setText(event.text);
    }
  }

  public static void main(String[] args) {
    new AdvancedBrowser("http://www.google.com");
  }
}
17. 86. 浏览器
17. 86. 1. 使用浏览器加载网页使用浏览器加载网页
17. 86. 2. 浏览器支持以下事件
17. 86. 3. 添加StatusTextListener到浏览器添加StatusTextListener到浏览器
17. 86. 4. 添加ProgressListener到浏览器添加ProgressListener到浏览器
17. 86. 5. 使用进度条,以显示浏览器的进展使用进度条,以显示浏览器的进展
17. 86. 6. 添加LocationListener到浏览器
17. 86. 7. 添加CloseWindowListener到浏览器
17. 86. 8. 添加VisibilityWindowListener
17. 86. 9. 添加OpenWindowListener
17. 86. 10. 添加TitleListener到浏览器
17. 86. 11. 浏览器:打开浏览器(弹出式窗口拦截器)
17. 86. 12. 渲染内存中的HTML
17. 86. 13. Browser: render HTML that includes relative links from memoryBrowser: render HTML that includes relative links from memory
17. 86. 14. 浏览器:修改DOM(执行JavaScript )浏览器:修改DOM(执行JavaScript )
17. 86. 15. 浏览器:查询DOM节点值浏览器:查询DOM节点值
17. 86. 16. 高级浏览器高级浏览器
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.