0

通过 JavaFX Eclipse 插件执行时,我的 JavaFX 应用程序正在运行。

但是当我尝试将它嵌入到我的网络项目中时,它没有被正确渲染,过了一会儿,一个黑色的矩形被加载到它的位置。

这是加载我的 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

在我的网络项目中,我将生成的 HelloApplet.jar 放入:

    src/main/webapp/applets/HelloApplet.jar

但无济于事,它仍然没有加载我在这里做错了什么?我错过了什么吗?

加载小程序时是否可以启用任何日志记录?

4

3 回答 3

2

抱歉,我对 JavaFX 不够熟悉,无法为您提供帮助,但您可以查看控制台,以便通过在控制面板中启用它来查看堆栈跟踪和所有内容(如果您使用的是 Windows):

替代文字

于 2010-09-08T13:05:19.593 回答
1

JavaFX 小程序使用使用 JNLP 的新 Java-Plugin 架构。要部署 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>

我的applet.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

你应该检查codebasein 文件的方向JNLP,它应该包含你的正确路径.jar

例如,如果我有我.jar的 at C:\Users\rodrigo\Documents\NetBeansProjects\JavaFXJavaScript\dist,那么我的 JNLP 应该是http://localhost:8082/servlet/org.netbeans.modules.javafx.project.JnlpDownloadServlet/C%3A/Users/rodrigo/Documents/NetBeansProjects/JavaFXJavaScript/dist/

于 2010-09-09T14:55:26.707 回答