【问题标题】:How can I use HTML & CSS to create the user interface for my java app?如何使用 HTML 和 CSS 为我的 java 应用程序创建用户界面?
【发布时间】:2013-12-30 08:59:29
【问题描述】:

我刚刚看了这篇文章:http://docs.oracle.com/javafx/2/webview/jfxpub-webview.htm 它展示了如何使用 javafx 库构建一个 java 应用程序,以及如何使用 WebEngine 和 WebView 等一些类在应用程序中显示网页,基本上把它变成了浏览器。

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

嵌入式浏览器组件基于WebKit,一个开源的web 浏览器引擎。它支持级联样式表 (CSS)、JavaScript、 文档对象模型 (DOM) 和 HTML5。

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

  1. 从本地和远程 URL 呈现 HTML 内容
  2. 获取网络历史记录
  3. 执行 JavaScript 命令
  4. 执行从 JavaScript 到 JavaFX 的向上调用
  5. 管理网页弹出窗口
  6. 将效果应用到嵌入式浏览器

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

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

【问题讨论】:

  • +1 我对此感到好奇已经有一段时间了,来自 html/css 背景,不喜欢 java 的默认 l&f。
  • 您的问题似乎已经回答了如何创建这样的应用程序的问题。 StackOverflow 对于 IMO 来说并不是真正的事情。

标签: java html css user-interface javafx


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我正在使用单个WebView 创建一个完整的桌面应用程序,它是available at github。基本上,它的 UI 是一个链接十几个 JS 文件的 HTML 文件。要从 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 集成。

    【讨论】:

      【解决方案3】:

      Vaadin

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

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

      Xojo

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

      【讨论】:

        【解决方案4】:

        这看起来是个好主意。

        另一种方法是使用Jetty 或类似的开源服务器,但您需要做更多工作才能使其适应您的应用程序。 另一种选择是构建一个Java EE 应用程序,但它对于应用程序的简单 Web 视图来说不是那么灵活,Java EE 使您可以使用 Java Server Pages 构建动态网页并使用Servlet,但你必须提交给他的结构,这对你的简单应用没有用处。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-19
          • 2011-11-02
          • 2010-11-19
          • 2021-12-03
          • 2016-10-31
          • 2020-06-11
          • 2013-04-29
          • 1970-01-01
          相关资源
          最近更新 更多