2010-09-08 64 views
0

我的JavaFX應用程序在通過JavaFX Eclipse插件執行時正在工作。在加載JavaFX Applet時啓用調試日誌

但是,當我嘗試將其嵌入到我的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 

但無濟於事,它仍然沒有加載我在這裏做錯了什麼?我錯過了什麼?

加載小程序時是否可以啓用任何日誌記錄?

+0

代碼取自http://jfx.wikia.com/wiki/ Applet_Example – Joopiter 2010-09-08 04:29:40

回答

2

對不起,我對JavaFX並不熟悉,但可以查看控制檯,以便您可以在控制面板中啓用堆棧跟蹤和所有功能(如果您使用Windows):

alt text

+1

這個工具叫做JaNeLA。它確實詳細說明了背後真正發生的情況並提出了建議。你可以訪問他們@ http://pscode.org/janela/ – Joopiter 2010-09-20 11:07:18

0

您應該檢查的codebase方向在文件JNLP,它應該包含你.jar的正確路徑。

舉例來說,如果我有我的.jarC:\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/

1

JavaFX的小程序使用它使用JNLP新的Java插件架構。要部署JavaFX applet,您必須在html文件和jnlp文件中使用javascript。當IDE生成jnlp和html文件時,它們會在這些文件中嵌入默認值,您必須確保這些值是正確的。當您在Web服務器上加載文件時,請確保以下內容:

  • 您的javascript archive:鍵匹配jar文件的名稱。
  • 您的JavaScript code:關鍵點的主類的小應用程序的
  • 您的JavaScript jnlp_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>