小编典典

这是一些示例代码

import java.awt.Color;

import java.awt.Component;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.FileNotFoundException;

import java.io.File;

import javax.swing.*;

import org.mozilla.xpcom.*;

import org.mozilla.interfaces.*;

/*

Websites ref

http://groups.google.com/group/mozilla.dev.tech.java/browse_thread/thread/898ba6751d0c57f7

http://skrul.com/blog/code/

http://wirestorm.net/blog/?cat=9

*/

public class BrowserTest implements nsIWebProgressListener,nsIWeakReference, nsIInterfaceRequestor, nsIWebBrowserChrome, nsISHistoryListener{

static {

try {

System.loadLibrary("NativeWindow");

} catch (UnsatisfiedLinkError e) {

System.err.println("can't find your library");

}

}

private static final String frameTitle="GRE Embedded";

public static void main(String[] args) {

BrowserConroller controler=new BrowserConroller();

controler.run();

new BrowserTest().start();

}

public void start(){

JFrame f = new JFrame( frameTitle );

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setSize(400, 150);

Container content = f.getContentPane();

content.setBackground(Color.white);

content.setLayout(new FlowLayout());

content.add(new JLabel("Initializing ... "));

f.setVisible(true);

File grePath = null;

LocationProvider locProvider;

Mozilla mozilla = Mozilla.getInstance();

GREVersionRange[] range = new GREVersionRange[1];

range[0] = new GREVersionRange("1.8.0", true, "1.9", false);

try {

grePath = Mozilla.getGREPathWithProperties(range, null);

mozilla.initialize(grePath);

locProvider = new LocationProvider(grePath);

mozilla.initEmbedding(grePath, grePath, locProvider);

}

catch (FileNotFoundException e) {

System.out.println("Error: FileNotFoundException");

}

catch (XPCOMException e) {

System.out.println("Error: XPCOMException");

}

//---------- END GRE INITIALIZATION------------

nsIServiceManager serviceManager = mozilla.getServiceManager();

nsIAppStartup appStartup = (nsIAppStartup)serviceManager.getServiceByContractID("@mozilla.org/toolkit/app-startup;1", nsIAppStartup.NS_IAPPSTARTUP_IID);

nsIWindowCreator windowCreator = (nsIWindowCreator)appStartup.queryInterface(nsIWindowCreator.NS_IWINDOWCREATOR_IID);

nsIWindowWatcher windowWatcher =(nsIWindowWatcher)serviceManager.getServiceByContractID("@mozilla.org/embedcomp/window-watcher;1",nsIWindowWatcher.NS_IWINDOWWATCHER_IID);

windowWatcher.setWindowCreator(windowCreator);

nsIDOMWindow win = windowWatcher.openWindow(null, "http://google.com", "MAIN_WIN","chrome,resizable,centerscreen", null);

windowWatcher.setActiveWindow( win );

nsIComponentManager componentManager = mozilla.getComponentManager();

String NS_IWEBBROWSER_CID = "F1EAC761-87E9-11d3-AF80-00A024FFC08C"; //$NON-NLS-1$

nsIWebBrowser webBrowser = (nsIWebBrowser) componentManager.createInstance(NS_IWEBBROWSER_CID, null, nsIWebBrowser.NS_IWEBBROWSER_IID);

webBrowser.setContainerWindow(this);

webBrowser.addWebBrowserListener(this, nsIWebProgressListener.NS_IWEBPROGRESSLISTENER_IID);

// nsIWebNavigation webNavigation=(nsIWebNavigation)webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);

// webNavigation.loadURI("http://www.zdnet.com", nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null);

//

nsIBaseWindow baseWindow = (nsIBaseWindow) webBrowser.queryInterface(nsIBaseWindow.NS_IBASEWINDOW_IID);

long handle=FindWindow.getHWND( frameTitle );

baseWindow.initWindow(handle, 0, 0, 0,350,350);

baseWindow.create();

baseWindow.setVisibility(true);

//

// nsIDOMWindow domWin=webBrowser.getContentDOMWindow();

// nsIDOMEventTarget domEventTarget= (nsIDOMEventTarget)domWin.queryInterface(nsIDOMEventTarget.NS_IDOMEVENTTARGET_IID);

// domEventTarget.addEventListener("click", new EventListener(), false);

//

//Hide JFrame after it have been initialized

f.setVisible(true);

//

// nsIWebNavigation webNavigation=(nsIWebNavigation)webBrowser.queryInterface(nsIWebNavigation.NS_IWEBNAVIGATION_IID);

// webNavigation.loadURI("http://www.zdnet.com", nsIWebNavigation.LOAD_FLAGS_NONE, null, null, null);

//

appStartup.run();

System.out.println("try termEmbedding");

try {

System.out.println("mozilla.termEmbedding(); START");

mozilla.termEmbedding();

System.out.println("mozilla.termEmbedding(); FINISHED");

}

catch (XPCOMException e) {

System.out.println("Fehler: XPCOMException");

}

System.out.println("finished termEmbedding");

System.out.println("All done");

}

public void onLocationChange(nsIWebProgress webProgress, nsIRequest request, nsIURI location) {

c("onLocationChange");

}

public void onProgressChange(nsIWebProgress webProgress, nsIRequest request, int curSelfProgress, int maxSelfProgress, int curTotalProgress, int maxTotalProgress) {

c("onProgressChange");

}

public void onSecurityChange(nsIWebProgress webProgress, nsIRequest request, long state) {

c("onSecurityChange");

}

public void onStateChange(nsIWebProgress webProgress, nsIRequest request, long stateFlags, long status) {

c("onStateChange");

}

public void onStatusChange(nsIWebProgress webProgress, nsIRequest request, long status, String message) {

c("onStatusChange");

}

public nsISupports queryInterface(String uuid) {

c("queryInterface");

return null;

}

public nsISupports queryReferent(String uuid) {

c("queryReferent");

return null;

}

public nsISupports getInterface(String uuid) {

c("getInterface");

return null;

}

private void c(Object o){

System.out.println(o);

}

public void destroyBrowserWindow() {

c("destroyBrowserWindow");

}

public void exitModalEventLoop(long status) {

c("exitModalEventLoop");

}

public long getChromeFlags() {

c("getChromeFlags");

return 0;

}

public nsIWebBrowser getWebBrowser() {

c("getWebBrowser");

return null;

}

public boolean isWindowModal() {

c("isWindowModal");

return false;

}

public void setChromeFlags(long chromeFlags) {

c("setChromeFlags");

}

public void setStatus(long statusType, String status) {

c("setStatus");

}

public void setWebBrowser(nsIWebBrowser webBrowser) {

c("setWebBrowser");

}

public void showAsModal() {

c("showAsModal");

}

public void sizeBrowserTo(int acx, int acy) {

c("sizeBrowserTo");

}

public boolean onHistoryGoBack(nsIURI backURI) {

c("onHistoryGoBack");

return false;

}

public boolean onHistoryGoForward(nsIURI forwardURI) {

c("onHistoryGoForward");

return false;

}

public boolean onHistoryGotoIndex(int index, nsIURI gotoURI) {

c(" onHistoryGotoIndex");

return false;

}

public void onHistoryNewEntry(nsIURI newURI) {

c(" onHistoryNewEntry");

}

public boolean onHistoryPurge(int numEntries) {

c(" onHistoryPurge");

return false;

}

public boolean onHistoryReload(nsIURI reloadURI, long reloadFlags) {

c(" onHistoryReload");

return false;

}

} //public class JavaXPCOM_test1[/code]

2020-10-18

火狐浏览器中打开java_将Firefox浏览器嵌入Java Swing中相关推荐

  1. 手机火狐浏览器怎么开启flash_如何开启Firefox浏览器flash支持?开启Firefox浏览器flash支持的方法...

    Firefox浏览器是一个很受欢迎的搜索服务软件,有很多用户都会使用这款搜索软件,很多功能都可以轻松体验的,但是用户在一开始使用Firefox浏览器的时候,浏览器是默认不开启flash支持的,如果用户 ...

  2. swingworker_使用SwingWorker的Java Swing中的多线程

    swingworker 如果要使用Swing用J​​ava编写桌面或Java Web Start程序,您可能会觉得需要通过创建自己的线程在后台运行某些程序. 没有什么可以阻止您在Swing中使用标准的 ...

  3. 使用SwingWorker的Java Swing中的多线程

    如果要使用Swing用J​​ava编写桌面或Java Web Start程序,您可能会觉得需要通过创建自己的线程在后台运行某些东西. 没有什么可以阻止您在Swing中使用标准的多线程技术,并且需要遵循 ...

  4. Java Swing中的聊天气泡

    本文将向您解释"如何在Java swing应用程序中绘制聊天气泡?" 聊天气泡与呼出气泡或思想气泡相同. 今天,大多数聊天应用程序都以这种格式显示转换,因此本文将帮助您在用Java ...

  5. java swing 注册事件_比较Java Swing中三种注册事件的方法

    Swing 是目前Java中不可缺少的窗口工具组,是建立图形化用户界面(GUI)程序的强大工具.Java Swing组件自动产生各种事件来响应用户行为.Java将事件封装成事件类,并且为每个事件类定义 ...

  6. Java Swing中键盘事件的处理

    在Java Swing编程过程中,经常需要处理键盘事件,例如处理快捷键等.这里就介绍如何定义键盘事件,以及如何处理这些事件. 在jdk1.2中,分别针对Jcomponent和Text类的对象定制了不同 ...

  7. Java Swing中JFreeChart构建双纵轴(双Y轴)图表的使用纪要

    背景 项目应用中整理纪要,用于参数说明.后抽部分简码以用例,特此纪要! 问题 Java Swing中JFreeChart如何构建双纵轴(双Y轴)图表 说明 JFreeChart是一个工厂类,是Swin ...

  8. java学习中,DVD管理系统纯代码(java 学习中的小记录)

    java学习中,DVD管理系统纯代码(java 学习中的小记录)作者:王可利(Star·星星) class DvdMain{public static void main (String[] args ...

  9. JAVA Swing 中的表格

    今天我们来学习一下java swing中的表格怎么来使用 在用swing技术开发系统的时候, 有时候会需要用到表格,那么我们来看看表格是怎么使用的 public class Table1 extend ...

最新文章

  1. [bzoj1477]青蛙的约会
  2. Python大法之抛 异常
  3. phpcms v9 数据库操作函数
  4. 分段线性插值Python实现(同时估计误差)
  5. 第二章 java常用开发工具以及程序的编写
  6. Atitit php序列化 php的serialize序列化和json序列化
  7. 优先级队列应用-称检测点查询
  8. 复习一下日志等级类型
  9. Java中关于省略作用域报错问题分析
  10. 记录一次bug解决过程:数据迁移
  11. 前后端分离html ssm,前后端分离请求ssm返回数据
  12. CF1093D Beautiful Graph
  13. tf 单个文字识别 data 数据输入
  14. Stata 中 profile.do 的设定
  15. 购买 阿里云海外服务器 实例
  16. react中配置less-loader报错
  17. 实践 基于Arduino 的 平衡车
  18. 中草药创新的背后离不开技术革新
  19. 运营商大数据丨电销行业如何高效获得精准客户
  20. 【自学Python】Python类型转换

热门文章

  1. 外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6
  2. Mysql导入excel数据,解决某些特殊字符乱码问题
  3. 机器学习原理与算法(六) 支持向量机
  4. BZOJ 1567: [JSOI2008]Blue Mary的战役地图
  5. jquery+easyui开发、培训文档
  6. oracle 中的trunc()函数及加一个月,一天,一小时,一分钟,一秒钟方法
  7. C++ Primer章课后编程问题
  8. unity5, custom PBS shader
  9. textbox 和textera 文本框多行后不能拉伸
  10. 你或许不了解的C++函数调用(1)