既存のHTML要素がHの下でここに与えられている:デスクトップアプリケーションのHTML/Javascript DOM要素を操作するためのJava API?
https://developer.mozilla.org/de/docs/Web/API
使用可能なJava APIクラスは、ここで示されています。
https://xerces.apache.org/xerces2-j/javadocs/api/org/w3c/dom/Element.html
残念ながらorg.w3c.domのパッケージには、いくつかのをミスより具体的な要素のようなHTMLCanvasElement。
私はです。少なくとも、HTMLCanvasElementsをサポートするより高度なJava APIを探しています(完全なWEP APIサポートは素晴らしいでしょう)。私はJavaでいくつかのJavaScriptを制御するためのJavaFXのWebViewを使用するプロジェクトjavafx-d3については
A.:私はこれまでに見つかった何
。 JavaとJavaScriptとの間の通信は、netscape.javascript.JSObjectに基づいており、原則的には正常に動作している:私はのorg.w3c.dom.ElementにJavaScriptの世界から得たのJSObjectをキャストすることができる午前
...と使用DOMを操作するためのJavaメソッド
「もっと深く」、たとえばHTMLCanvasElementを制御するには、JSObjectに基づいて独自のラッパーを作成する必要があります。それは可能ですが、ホイールを再発明するように感じます。
B. GoogleのGWTは、例えば、いくつかのラッパークラスを提供しているようですHTMLCanvasElement
ため
com.google.gwt.dom.client.CanvasElement私はGWTのラッパークラス(com.google.gwt.core.client.JavaScriptObjectから開始)にnetscape.javascript.JSObjectのを変換するために管理していませんでしたが。
これがまったく可能であれば、誰かが例を挙げることができますか?
誰かがそのダミーの例を以下のように実行する方法を知っていますか? GWTの元素について
package main;
import elemental.client.Browser;
import elemental.html.AudioContext;
import elemental.html.AudioParam;
import elemental.html.Oscillator;
import elemental.html.Window;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Region;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class GwtElementDemo extends Application {
private Scene scene;
private Region browser;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
//set state title
stage.setTitle("JavaFx demo");
browser = new Region();
Window window = Browser.getWindow();
AudioContext audioContext = window.newAudioContext();
Oscillator osc = audioContext.createOscillator();
osc.setType(Oscillator.SQUARE);
osc.connect((AudioParam) audioContext.getDestination(), 0);
osc.getFrequency().setValue(440.0f);
osc.noteOn(0);
//create the scene
scene = new Scene(browser, 750, 500, Color.web("#666970"));
stage.setScene(scene);
stage.show();
}
}
Mavenの依存関係:
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-elemental</artifactId>
<version>2.8.0</version>
</dependency>
それとも、(つまり、JSObjectの階層の上に構築され)DOM操作のための代替/高度なJAVAのAPIを知っていますか?
詳細な回答ありがとうございます。あなたのjarファイルを使って、gwt要素apiを使ってDOMを制御できるJavaFxアプリケーションを実行しました。 win.alert( "Hello World");私はドキュメントの高さを取得することができます。 window.newAudioContext()は機能しません...あなたが言及した制限のためかもしれません。 – Stefan
プロジェクトjava-fxのWebViewのパフォーマンスに関する問題がいくつか見つかりました。そのトピックに関する詳細はhttp:// stackoverflowを参照してください。com/questions/10762979/performance-of-webview-in-javafx – Stefan
WebViewの代わりに商用のJxBrowserを使用することも可能です。たぶんそこには他の選択肢があるかもしれません。 – Stefan