当JEditorPane不会这样做的时候。 JRex,JRex因此是JRex吗?

时间:2011-08-31 16:02:37

标签: java user-interface browser

IDEA:将最近的Web浏览器实现为Java应用程序(用于保存的脱机,非服务器内容)。


问题是:我可以在Java程序中使用jquery / html / css支持java应用程序实现webbrowser吗?


所以我要求任何使用JRex的人提出建议:我想知道将开源webbrowser集成到java中会有多复杂。我不是那么热衷于从源代码构建中编译Mozilla的想法。是否有现成的编译版本?

是否有一种简化的方法可以获得最新的编译版本(最新支持HTML css和javascript),并将其集成到应用程序中?

另外:我很欣赏支持HTML4 nevermind 5和CSS2合规性所需的工作量。 JRex与此有多接近?

应用程序:我对webbrowser的意图是从脱机内容呈现网页。它不需要是在线内容,只需用于基于文件的显示=例如文件:/// C:...

是否必须将webbrowser包装到服务器中才能运行,例如将文件传递给浏览器进行渲染是多么复杂?我并不渴望为此实现Jetty或其他服务器类型的应用程序。


如果JRex不是解决方案......那么呢?是否可以在Java中启动浏览器实现,Java可以与信息交互并遍历Dom吗?

或者在Firefox等最近的浏览器中有.hta等效吗?

2 个答案:

答案 0 :(得分:2)

如果您需要让嵌入式浏览器与您的应用程序代码进行交互,您可以尝试使用SWT Browser control,它实际上是维护而不是JRex。浏览器根据需要使用WebKit或Gecko或嵌入式IE,或者让你选择你想要的那个,所以它应该运行jQuery和熟悉的Javascript。由于SWT是一个JNI库,他们可能已经就如何部署使用JNI的应用程序提供了指导。

您可以通过字符串(example)或java Url将HTML提供给控件 - 这可以指向JAR中的本地文件或资源文件,我假设您可以将应用分成不同的文件。
要调用Java代码,您需要将其公开为Javascript函数。 example
要从Java代码中操作HTML,您需要从Java调用Javascript函数。 example

为了简化前两个任务,您可能需要查看JSON库以简化复杂数据的传递。

答案 1 :(得分:0)

是否必须在Java程序中实现?你可以让用户在他们的机器上使用默认浏览器(即,哪个浏览器有用)?

如果没有,请使用Java Desktop API

 if (desktop.isSupported(Desktop.Action.BROWSE)) {
            txtBrowserURI.setEnabled(true);
            btnLaunchBrowser.setEnabled(true);
        }

如果您使用的是Java 1.5,请尝试http://javadesktop.org/articles/jdic/