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

Posted

技术标签:

【中文标题】如何使用 HTML 和 CSS 为我的 java 应用程序创建用户界面?【英文标题】:How can I use HTML & CSS to create the user interface for my java app? 【发布时间】: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 应用程序:

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

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

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

【问题讨论】:

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

您可以将Struts2 或Spring 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,但你必须提交给他的结构,这对你的简单应用没有用处。

【讨论】:

以上是关于如何使用 HTML 和 CSS 为我的 java 应用程序创建用户界面?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅为我的自定义 vue 组件包含外部 css 文件?

单击按钮后为我的表选择一个类? (HTML 表格)

如何使用 webpack 将 html、js 和 css 捆绑在一个 html 文件中? [关闭]

如何使用 html/css 进行图像翻转?

如何使用 CSS3 无限地为我的图像设置动画

如何让我的 css 为我的 dojo dijit 表单按钮正常工作?