0

私のJavaFXアプリは、JavaFXEclipseプラグインを介して実行すると機能します。

しかし、それをWebプロジェクトに埋め込もうとすると、正しくレンダリングされず、しばらくすると、その場所に黒い長方形が読み込まれます。

JavaFXアプリケーションをロードするためのコードは次のとおりです。

    <script src="http://dl.javafx.com/1.2/dtfx.js"></script>
    <script>
        javafx({
            codebase: "/applets/",
            archive: "HelloApplet.jar",
            draggable: false,
            width: 250,
            height: 80,
            code: "hello.HelloApplet",
            name: "HelloApplet"
       });
    </script>

そして、これが私のJavaFXアプリのコードです。

    package hello;
    // some imports here
    // ...
    Stage {
      title: "My Applet"
      width: 250
      height: 80
      scene: Scene {
        content: Text {
            x: 10  y: 30
            font: Font { size: 24 }
            fill: Color.BLUE
            effect: DropShadow{ offsetX: 3 offsetY: 3}
            content: "Hello World!"
          } // Text
       } // Scene
    } // Stage

私のWebプロジェクトでは、生成されたHelloApplet.jarを次の場所に配置しました。

    src/main/webapp/applets/HelloApplet.jar

しかし、無駄に、それはまだ私がここで間違っていることをロードしていませんか?私は何かが足りないのですか?

アプレットのロード中にロギングを有効にすることは可能ですか?

4

3 に答える 3

2

申し訳ありませんが、JavaFXについては十分に理解していませんが、コンソールを表示して、コントロールパネルで有効にすることでスタックトレースとすべてを確認できます(Windowsを使用している場合)。

代替テキスト

于 2010-09-08T13:05:19.593 に答える
1

JavaFXアプレットは、JNLPを使用する新しいJavaプラグインアーキテクチャを使用します。JavaFXアプレットをデプロイするには、htmlファイルのjavascriptとjnlpファイルの両方を使用する必要があります。IDEがjnlpおよびhtmlファイルを生成するとき、それらは、正しいことを確認する必要があるこれらのファイルにデフォルト値を埋め込みます。Webサーバーにファイルをロードするときは、次の点に注意してください。

  • javascriptarchive:キーはjarファイルの名前と一致します。
  • javascriptcode:キーは、アプレットのメインクラスを指します
  • javascriptjnlp_href:キーは、jnlpファイルの適切な場所を指します
  • jnlpファイルは、コードが存在する場所を参照するコードベースである必要があります。

以下にサンプルを示します。

javascript:

<script>
    javafx(
        {
              archive: "applet-demo.jar",
              width: 640,
              height: 75,
              code: "applet.demo.Main",
              name: "applet-demo",
              jnlp_href: "myapplet.jnlp"
        }
    );
</script>

myapplet.jnlp

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://javafxcookbook.s3.amazonaws.com/ch007/applet-demo" href="myapplet.jnlp">
    <information>
        <title>applet-demo</title>
        <vendor>Vladimir Vivien</vendor>
        <homepage href="http://javafxcookbook.s3.amazonaws.com/ch007/applet-demo"/>
        <description>applet-demo</description>
        <offline-allowed/>
        <shortcut>
            <desktop/>
        </shortcut>
    </information>
    <resources>
        <j2se version="1.5+"/>
        <extension name="JavaFX Runtime" href="http://dl.javafx.com/1.2/javafx-rt.jnlp"/>
        <jar href="applet-demo.jar" main="true"/>
    </resources>
    <applet-desc name="applet-demo" main-class="com.sun.javafx.runtime.adapter.Applet" width="640" height="75">
        <param name="MainJavaFXScript" value="applet.demo.Main">
    </applet-desc>
    <update check="background">
</jnlp>
于 2010-09-15T14:48:48.890 に答える
0

codebaseファイル内の方向を確認する必要があります。JNLPこれには、の正しいパスが含まれている必要があります.jar

たとえば、私がにいる場合、私.jarC:\Users\rodrigo\Documents\NetBeansProjects\JavaFXJavaScript\distJNLPはhttp://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/C%3A/Users/rodrigo/Documents/NetBeansProjects/JavaFXJavaScript/dist/

于 2010-09-09T14:55:26.707 に答える