使用嵌入式Web浏览器(例如Chrome)作为Java桌面应用程序的GUI工具包?

时间:2012-02-10 21:30:41

标签: java html5 user-interface google-chrome desktop

那些HTML5网站看起来很棒 - 为什么我的Java桌面应用程序没有? Swing和SWT就是老派。他们完成了自己的工作,但是用动画制作看上去很漂亮的图形用户界面,一切都是不可能的。

我想知道:是否可以将HTML5用作GUI工具包?我考虑过一个库,它有一个类似于Swing或SWT的API,但是在HTML5中渲染。它应该是可以的,您应该访问Java中的页面(即Java和JavaScript / HTML5之间的某种融合)。

为什么不创建一个网络应用程序并向我的用户发送URL呢?我想从Java SE应用程序(文件,COM,托盘图标等)的真实桌面集成中受益。就像PhoneGap一样,但桌面操作系统而不是手机。

我确实在网上找不到那样的东西。但也许我刚刚输入错误的搜索字词?有人有想法吗?

如果没有:我能以某种方式将WebKit / Chrome与我的应用程序一起嵌入吗?因此,用户不必安装自己的副本,也不必更改任何设置。

6 个答案:

答案 0 :(得分:9)

我想到了两件事:

  • Adobe Air,或多或少正是您正在寻找的东西:桌面的PhoneGap。
  • Chromium Embedded Framework,您只需付出一点努力就可以使用Chromium作为应用程序的框架。

答案 1 :(得分:5)

你应该看看JavaFX 2.0。它允许您在FXML中指定GUI组件,并支持CSS样式。它还有一个“WebView”组件,可以让您轻松地在应用程序中显示网页。

编辑2015年11月28日

  

JavaFX概述部分已移动。

     

从JDK 7u6开始,JavaFX包含在标准JDK和JRE中   捆绑。请下载JDK或JRE以使用JavaFX。

     

如果您正在寻找JavaFX Scene Builder下载,您会发现   它位于Java SE主Java下载的“其他资源”部分   页。

     

请更新指向the new location的链接。

答案 2 :(得分:5)

TeamDev Ltd.最近发布了JxBrowser库,可以让你做你想做的事情。它允许将基于Chromium的Web浏览器控件嵌入到Java Swing / AWT应用程序中。它支持Chromium多进程架构并在屏幕外呈现网页。使用JxBrowser,您将获得一个完全轻量级的Swing Browser组件,该组件可以像在Google Chrome应用程序中一样显示网页。

答案 3 :(得分:3)

在桌面应用程序中使用HTML / JavaScript的一种方法是在应用程序中嵌入HTML服务器。然后一个网页将成为GUI。 如果您使用

,它实际上是几十行代码

实施例: simple HTTP server in Java using only Java SE API

文档: http://docs.oracle.com/javase/7/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/package-summary.html

您需要从Web服务器(甚至在本地主机上)提供GUI网页,以避免此处描述的JavaScript相同的源策略冲突

答案 4 :(得分:3)

过了一段时间,所以我不知道这是否有用。但是你可以看看DukeScript(http://wiki.apidesign.org/wiki/DukeScript),这是Netbeans IDE的原作者的概念。据我所知,这个想法是在HTML5环境中开发Java应用程序。它依赖于浏览器作为平台(支持Chrome)和Javascript中运行在浏览器中的JVM(实际上有两个,它们自己的bck2brwsrTeaVM)。您甚至可以使用JavaFX,并且可以部署到Android,iOS或浏览器。有关示例,请查看http://dukescript.com

答案 5 :(得分:0)

与标准浏览器中的HTML gui相比,您期望有什么优势?很多程序都有自己的HTTP服务器,用于简化UI开发。我还读过QtQuickYouTube demo),但我从未尝试过自己

我有以下几点要指出

  1. 在浏览器中调试/测试GUI更简单
  2. 小包装
  3. 开发时间优化
  4. 真正的跨平台(至少,当你有一个HTTP服务器作为应用程序逻辑处理器时,它更容易跨平台)