`
duduheng
  • 浏览: 22764 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

在java应用程序中嵌入浏览器

阅读更多
方式一:用jdic开源组件,这种方式有个缺点,不支持firefox,如果把默认浏览器设为firefox就会出错

具体代码如下:

import java.awt.BorderLayout;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JFrame;
import javax.swing.JPanel;

import org.jdesktop.jdic.browser.WebBrowser;
import org.jdesktop.jdic.browser.WebBrowserEvent;
import org.jdesktop.jdic.browser.WebBrowserListener;

/**
*TODO java 嵌入浏览器
*date:Oct 21, 2009
*time:10:34:09 AM
*author:Administrator
*email:jxauwxj@126.com
*/
public class MainFrame extends JFrame{

private WebBrowser webBrowser;
private JPanel jPanel;
private String url;

public MainFrame(String name,String url){
     super(name);
      this.url = url;
     init();
      //关闭
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void init(){
       //隐藏JFrame的标题栏,必须在显示之前调用,否则就会抛出异常
       //this.setUndecorated(true);
      webBrowser = new WebBrowser();
       //注册各种侦听器
        webBrowser.addWebBrowserListener(
            new WebBrowserListener() {
            public void downloadStarted(WebBrowserEvent event) {;}
            public void downloadCompleted(WebBrowserEvent event) {;}
            public void downloadProgress(WebBrowserEvent event) {;}
            public void downloadError(WebBrowserEvent event) {;}
            public void documentCompleted(WebBrowserEvent event) {;}
            public void titleChange(WebBrowserEvent event) {;}
            public void statusTextChange(WebBrowserEvent event) {;}
            public void windowClose(WebBrowserEvent webBrowserEvent) {
            }
        });
      
      //打开某个网页
        try {
        webBrowser.setURL(new URL(url));
        } catch (MalformedURLException e) {
            System.out.println(e.getMessage());
            return;
        }
      
        jPanel = new JPanel();
        jPanel.setLayout(new BorderLayout());
        jPanel.add(webBrowser, BorderLayout.CENTER);
        this.getContentPane().add(jPanel, BorderLayout.CENTER);
        this.pack();
        //全屏
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        //this.setSize(500,500);
        this.setVisible(true);
}

public static void main(String[] args){
      String url = "http://...";
      new MainFrame("电信营业厅缴费终端",url);
}

}

方式二:用 DJ Native Swing 组件(http://djproject.sourceforge.net/ns/index.html),支持firefox

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;

public class EagleBrowser extends JPanel {

private JPanel webBrowserPanel;

private JWebBrowser webBrowser;

private String url;

public EagleBrowser(String url) {
     super(new BorderLayout());
     this.url = url;
     webBrowserPanel = new JPanel(new BorderLayout());
     webBrowser = new JWebBrowser();
     webBrowser.navigate(url);
     webBrowser.setButtonBarVisible(false);
     webBrowser.setMenuBarVisible(false);
     webBrowser.setBarsVisible(false);
     webBrowser.setStatusBarVisible(false);
     webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
     add(webBrowserPanel, BorderLayout.CENTER);
   }

   public static void main(String[] args) {
    final String url = "http://";
    final String title = "电信营业厅缴费终端";
       UIUtils.setPreferredLookAndFeel();
       NativeInterface.open();
     
       SwingUtilities.invokeLater(new Runnable() {
       public void run() {
        JFrame frame = new JFrame(title);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new EagleBrowser(url), BorderLayout.CENTER);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setLocationByPlatform(true);
        //frame.setUndecorated(true);
        frame.setVisible(true);
       }
     });
     NativeInterface.runEventPump();
   }

}
分享到:
评论

相关推荐

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    通过SWT,我们可以方便地在Java应用中集成其他原生组件,比如在这个案例中的Web浏览器控件。 在本示例中,开发者可能使用了DJnative-SWT提供的API来创建一个Swing组件,该组件能够内嵌WebKit浏览器引擎。这通常涉及...

    JAVA(GUI)中嵌入浏览器页面

    总之,Java GUI中嵌入浏览器页面主要依赖于如JDIC这样的库,通过它们提供的组件可以直接在Java应用中显示和操作网页。然而,随着技术的进步,开发者应当关注并评估更适合当前需求的解决方案,以确保应用的性能和兼容...

    java应用嵌入浏览器简单实例 Eclipse工程

    "嵌入浏览器"是指将Web浏览器的功能集成到这个Java应用中,允许用户在应用内部浏览网页。Eclipse工程则表明这个示例是在Eclipse IDE中构建的,这是一个广泛使用的Java开发工具,提供了项目管理、编辑、调试等功能。 ...

    Java嵌入谷歌内核简单浏览器

    Java嵌入谷歌内核简单浏览器是一种技术实现,它允许开发者在Java应用程序中集成谷歌的Chromium Embedded Framework(CEF),从而创建具有现代Web浏览功能的应用。CEF是一个开源项目,它为各种编程语言提供了一个轻量...

    Java嵌入谷歌内核简单浏览器跨平台

    1. **多平台支持**:JxBrowser可以在Windows、macOS和Linux上运行,使Java应用程序具备跨平台的浏览器功能。 2. **高性能渲染**:基于Chromium,提供与Google Chrome相似的页面渲染速度和效果。 3. **API接口**:...

    Java 版浏览器(居于jdic制作)

    Java版浏览器是基于JDIC库开发的,JDIC是一个Java平台上的桌面集成组件,它提供了对Web浏览器功能的封装,使得Java开发者能够方便地在Java应用程序中嵌入浏览器功能。这个浏览器项目实现了基本的浏览网页、导航、...

    java嵌入浏览器JxBrowser6.21

    Java嵌入浏览器技术是将一个完整的网页浏览功能集成到Java应用程序中的方法,使得开发者可以在Java应用内部展示网页、实现Web应用交互。JxBrowser是一款专为此目的设计的库,它提供了一个API,允许Java开发者轻松地...

    在SWING、SWT中嵌入浏览器

    这篇博客文章“在SWING、SWT中嵌入浏览器”就探讨了如何在Java应用中实现这一功能。 首先,SWING是Java Foundation Classes (JFC)的一部分,提供了丰富的组件和布局管理器来构建复杂的用户界面。尽管SWING本身并不...

    java 程序设计网页浏览器

    在浏览器中,你需要设计一个窗口,包含地址栏、前进/后退按钮、刷新按钮、书签等功能。使用JFrame作为主窗口,JPanel存放网页内容,JTextField用于输入URL,JButton实现按钮功能。 5. **渲染HTML**:解析HTML后,...

    java嵌入浏览器资源包

    Java 嵌入浏览器资源包是一种技术,允许开发者在 Java 应用程序中集成Web浏览功能,以便在桌面应用中展示网页内容或者实现基于Web的交互。2017年的最新版应该指的是那个时期的稳定版本,它支持64位操作系统,意味着...

    漂亮的java嵌套火狐内核浏览器

    这个项目的特色在于它将火狐的浏览能力整合到Java应用程序中,使得用户能够在不离开主应用的情况下访问网页内容。 火狐内核,也称为Gecko,是Mozilla Firefox浏览器背后的渲染引擎。它负责解析HTML、CSS、...

    java 实现整张网页快照

    这是一个基于Java的轻量级浏览器引擎,允许在Java应用程序中嵌入浏览器功能。在Java中,JWebBrowser是由DJ Project提供的,它支持HTML5、CSS3、JavaScript等现代网页技术,并提供了API来控制网页加载、导航、执行...

    如何在JAVA程序中嵌入IE

    在Java程序中嵌入Internet Explorer(IE)是一种常见的需求,特别是在需要在应用程序内部展示网页内容或者与Web服务交互时。...通过这些步骤,开发者可以创建一个包含内嵌IE浏览器的Java应用程序,实现与Web的交互。

    java swing 内嵌浏览器

    在某些情况下,开发者可能需要在Java应用中集成一个浏览器组件,以便展示网页内容或者实现一些Web相关的功能。这就是"Java Swing 内嵌浏览器"的概念。在Java中实现内嵌浏览器,通常会借助第三方库,如DJNativeSwing-...

    JAVA CEF嵌入式浏览器框架实例及参考资料 一

    Java CEF,全称为“Java Chromium Embedded Framework”,是基于Chromium开源项目开发的一个库,它允许开发者在Java应用中嵌入高性能的Web浏览器组件。Chromium是Google Chrome浏览器的基础,因此,通过Java CEF,...

    Java 实现swing中嵌入html 实例 适合新手

    在Java编程中,Swing库提供了丰富的组件来创建桌面应用程序,但默认情况下它不支持直接显示HTML内容。然而,通过引入第三方库,如DJ Native Swing,我们可以实现在Swing应用中嵌入HTML的功能,这对于创建复杂的用户...

    java应用程序登录窗口

    在我们的例子中,我们可以使用JDIC的`Browser`类来在JFrame中嵌入一个Web视图,这样就可以将HTML登录页面加载到Java应用程序中,给用户带来类似Web应用的体验。 3. **加载Web页面**:通过JDIC,我们可以使用`...

    java调用chrome浏览器内核cef实现,非jxbrowser

    首先,CEF是由Google Chrome团队维护的开源项目,它提供了C++的API,用于在各种应用程序中嵌入Web内容。要将其与Java结合,我们需要一个Java绑定层,这通常通过JNI(Java Native Interface)来实现。JNI允许Java代码...

    jxbrowser-7.5-cross-desktop-win_mac_linux.rar

    JxBrowser是一款基于Chromium内核的Java库,它允许开发者在Java应用程序中嵌入浏览器功能,无需依赖外部浏览器进程。JxBrowser 7.5的发布,为开发者带来了更稳定、高效和安全的浏览器体验。通过这个压缩包...

    JAVA小程序与应用程序及相互转化.pdf

    首先,Java小程序(Applet)是一种特殊类型的Java应用程序,它通常嵌入在HTML文件中并在网络浏览器内运行,无需用户下载安装。用户可以直接在浏览器中查看和使用Applet,而无需离开当前的网络页面。Applet的超类必须...

Global site tag (gtag.js) - Google Analytics