我如何使用HTML& CSS为我的Java应用程序创建用户界面?

时间:2013-12-12 04:43:06

标签: java html css user-interface javafx

我刚读过这篇文章:http://docs.oracle.com/javafx/2/webview/jfxpub-webview.htm它展示了如何使用javafx库构建Java应用程序,以及如何使用WebEngine和WebView等某些类在应用程序中显示网页,基本上转向它进入浏览器。

以下是文章中的一些相关信息:

  

嵌入式浏览器组件基于WebKit,一种开源Web   浏览器引擎。它支持层叠样式表(CSS),JavaScript,   文档对象模型(DOM)和HTML5。

     

嵌入式浏览器使您可以执行以下任务   您的JavaFX应用程序:

     
      
  1. 从本地和远程网址呈现HTML内容
  2.   
  3. 获取网络历史记录
  4.   
  5. 执行JavaScript命令
  6.   
  7. 从JavaScript执行上传到JavaFX
  8.   
  9. 管理网络弹出窗口
  10.   
  11. 将效果应用于嵌入式浏览器
  12.   

我基本上完全不需要Java或JavaFX GUI工具,除了显示HTML和CSS所需的工具,如本文所述,并为我的应用程序构建HTML和CSS的整个用户界面。我希望各种HTML按钮能够在我的java代码中发生事件。

这看起来是个好主意吗?因为它对我来说似乎是一个好主意,我也想知道为什么有人会使用任何其他方法在java中构建GUI。

4 个答案:

答案 0 :(得分:2)

我正在使用单个WebView创建整个桌面应用程序,它是available at github。基本上它的UI是一个HTML文件,它链接了十几个JS文件。要从JS调用Java,我将请求包装到json中并调用Java外观bean。也可以以相同的方式从Java调用JS。虽然可以通过在具有任何类型参数的Java bean上调用方法来直接调用Java,但我确实有一些应用程序崩溃,之后我决定使它完全安全并保持json。这个应用程序使用AngularJS和Twitter Bootstrap来呈现页面。

我在Oracle的JIRA中创建了一个票证,以便在WebView中实现更好的Java集成(JSR-223),他们的答案是它可以安排在Java 9中。

开发速度非常快,当设置过程时 - 由于没有调试器,因此很难在开始时调试应用程序。一些顶级JS异常也没有被捕获。目前我在JavaFX 8中没有使用WebView问题。由于字体问题,JavaFX 7对我来说无法使用。

回答你的上一个问题 - 我不知道,但情况恰恰相反。出于某种原因,Oracle为JavaFX本机组件开发提供了资源,但不是为了更好的WebView集成。

答案 1 :(得分:0)

您可以将Struts2Spring MVC等MVC框架与AJAX一起使用,并使用HTML / CSS完全构建用户界面(视图组件)。有时,使用FreeMarker 3等模板引擎也有助于用纯HTML / CSS解决方案替换默认的java渲染。

答案 2 :(得分:0)

Vaadin

Vaadin是一个复杂的基于servlet的框架,它创建基于服务器端的应用程序,运行纯Java代码,同时在HTML,CSS和JavaScript中自动呈现客户端的用户界面。

您无需了解或完成这些Web客户端技术的编程,Vaadin会为您完成所有与Web相关的工作。没有网页模板,没有网页,没有网页。您的Java代码只是创建标签,字段,按钮和布局。 Vaadin将那些即时转换为在浏览器中呈现。服务器上的纯Java,客户端/浏览器端根本没有Java。

Xojo

Vaadin不是“另一个Web应用程序框架”。除了使用自己的专有Xojo语言的非Java OOP网络版之外,它在架构方面确实没有直接的竞争对手。

答案 3 :(得分:0)

这看起来是个好主意。

另一种方法是使用Jetty或类似的开源服务器,但您需要做更多的工作才能使其适应您的应用程序。 另一种方法是构建一个Java EE应用程序,但它对于应用程序的简单Web视图并不那么敏捷,Java EE使您可以使用Java Server Pages构建动态Web页面并管理用户请求使用Servlets但你必须提交他的结构,这对你的简单应用没用。