如何使用 HTML 和 CSS 作为 Java 应用程序 GUI? [英] How to use HTML and CSS as a Java application GUI?

查看:37
本文介绍了如何使用 HTML 和 CSS 作为 Java 应用程序 GUI?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用干净的 GUI 设计新的 Git 客户端.

I want to design new Git client with a clean GUI.

是否可以在 Java 应用程序中使用 HTML、CSS 和 JavaScript 的强大功能?

Is it possible to use the power of HTML, CSS and JavaScript in a java application?

我想对模型使用 Java + JGit,对控制器使用 Java,对视图使用 HTML + CSS + JavaScript.

I would like to use Java + JGit for models, Java for controllers and HTML + CSS + JavaScript for views.

我不想要客户端-服务器模型.我想很好地集成 Java 和 HTML.DOM 事件会直接向 Java 控制器触发事件​​.这样就可以创建丰富的离线应用程序.

I don't want a client-server model. I would like to integrate Java and HTML nicely. A DOM event would fire events directly to a Java controller. This way it would be possible to create rich offline application.

推荐答案

您可以将 Web 浏览器组件嵌入到您的 Java Swing/JavaFX 桌面应用程序中,该应用程序显示使用 HTML5+CSS+JavaScript 构建的 GUI.您可以在 https 上查看介绍如何执行此操作的文章://jxbrowser-support.teamdev.com/docs/tutorials/cross-desktop-apps.html

You can embed web browser component into your Java Swing/JavaFX Desktop application that displays GUI built with HTML5+CSS+JavaScript. You can see an article that describes how to do this at https://jxbrowser-support.teamdev.com/docs/tutorials/cross-desktop-apps.html

允许将 Chromium 嵌入 Java 应用程序的 Java Swing/JavaFX 库之一是 JxBrowser.使用 JxBrowser API,您可以加载任何网页并使用其 DOM 和 JavaScript.您甚至可以从 JavaScript 代码调用 Java 方法,反之亦然.例如:

One of the Java Swing/JavaFX libraries that allows embedding Chromium into Java applications is JxBrowser. Using JxBrowser API you can load any web page and work with its DOM and JavaScript. You can even call Java methods from JavaScript code and vice versa. For example:

import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.JSFunctionCallback;
import com.teamdev.jxbrowser.chromium.JSObject;
import com.teamdev.jxbrowser.chromium.JSValue;
import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent;
import com.teamdev.jxbrowser.chromium.events.LoadAdapter;

public class JavaScriptJavaSample {
    public static void main(String[] args) {
        Browser browser = new Browser();
        browser.addLoadListener(new LoadAdapter() {
            @Override
            public void onFinishLoadingFrame(FinishLoadingEvent event) {
                if (event.isMainFrame()) {
                    Browser browser = event.getBrowser();
                    JSObject window = (JSObject)
                            browser.executeJavaScriptAndReturnValue("window");
                    window.setProperty("MyFunction", new JSFunctionCallback() {
                        @Override
                        public Object invoke(Object... args) {
                            for (Object arg : args) {
                                System.out.println("arg = " + arg);
                            }
                            return "Hello!";
                        }
                    });
                    JSValue returnValue = browser.executeJavaScriptAndReturnValue(
                            "MyFunction('Hello JxBrowser!', 1, 2, 3, true);");
                    System.out.println("return value = " + returnValue);
                }
            }
        });
        browser.loadURL("about:blank");
    }
}

这篇关于如何使用 HTML 和 CSS 作为 Java 应用程序 GUI?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆