首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用HTML和CSS作为Java应用程序GUI?

如何使用HTML和CSS作为Java应用程序GUI?
EN

Stack Overflow用户
提问于 2011-08-24 22:17:47
回答 5查看 70.9K关注 0票数 24

我想设计一个干净的图形用户界面的新的Git客户端。

可以在java应用程序中使用HTML,CSS和JavaScript的强大功能吗?

我想用Java + JGit表示模型,用Java表示控制器,用HTML + CSS + JavaScript表示视图。

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-02-25 21:35:42

您可以将web浏览器组件嵌入到显示使用HTML5+CSS+JavaScript构建的图形用户界面的Java Swing/JavaFX Desktop应用程序中。您可以在https://jxbrowser-support.teamdev.com/docs/tutorials/cross-desktop-apps.html上看到一篇介绍如何做到这一点的文章

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

代码语言:javascript
复制
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");
    }
}
票数 16
EN

Stack Overflow用户

发布于 2011-08-24 22:37:26

就像@Reverand Gonzo所说的,你需要某种形式的服务器/客户端。但是你可以很容易的使用embed a Jetty server into a Java app and then use GWT for your client code

票数 4
EN

Stack Overflow用户

发布于 2018-03-07 23:26:06

您可以使用JFXPanel嵌入JavaFX WebView,将HTML、CSS、JavaScript的强大功能引入到您的Swing应用程序中。查看此链接中的SimpleSwingBrowser演示:https://docs.oracle.com/javase/8/javafx/interoperability-tutorial/swing-fx-interoperability.htm

WebView允许从Java调用JavaScript函数,反之亦然。这也是一种用web技术增强遗留Java应用程序的好方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7176981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档