我想设计一个干净的图形用户界面的新的Git客户端。
可以在java应用程序中使用HTML,CSS和JavaScript的强大功能吗?
我想用Java + JGit表示模型,用Java表示控制器,用HTML + CSS + JavaScript表示视图。
我不想要客户端-服务器模型。我想很好地集成Java和HTML。DOM事件将直接向Java控制器触发事件。这样就可以创建丰富的离线应用程序。
发布于 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方法,反之亦然。例如:
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");
}
}
发布于 2011-08-24 22:37:26
就像@Reverand Gonzo所说的,你需要某种形式的服务器/客户端。但是你可以很容易的使用embed a Jetty server into a Java app and then use GWT for your client code。
发布于 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应用程序的好方法。
https://stackoverflow.com/questions/7176981
复制相似问题