在JavaFX 發布之後本人撰寫的文章JavaFX和Java之間的互操作性被各網站轉載文中總結了種從Java調用JavaFX的方法這三種方法分別為:
用ScriptEngineManager類這是基於JSR規范的java腳本API( scripting API)可以在java程序中運行一些腳本如 JavaFX script javascript等
通過JavaFX reflection API這是JavaFX提供的反射API幾乎可以調用所有的JavaFX類
先用JavaFX類實現一個Java的interface然後Java程序可以通過這個interface來調用JavaFX的功能這中間的interface起了個橋梁的作用
第三種方法應該是比較正規而且優美的調用方式但是也有一點不足程序代碼的入口必須從JavaFX啟動這是因為JavaFX程序比較容易生成JavaFX類的實例從而可以供Java方使用可是我們有時會碰到一些特定的情況需要從Java端啟動代碼例如如果你已經有了一個較完整的Java程序你需要用調用JavaFX的某些功能這時候較好的方法是把Java作為程序的入口為了解決這個問題我把第和第種方法作了融合大家可以看看下面的例子純Java代碼調用JavaFX的例子
下一步是創建JavaFX類MyChart來實現這個interface:
在代碼中這句是創建JavaFX類javatestMyChart實例
Context context = FXLocalgetContext(); FXClassType instance = contextfindClass(javatestMyChart); ObjectValue obj = (ObjectValue)instancenewInstance();
而一下這句則是把JavaFX實例轉化為Java可用的對象
JavaInterface ji = (JavaInterface)objasObject();
如果你用的是NetBeans IDE 你可以在項目屬性中把javatestJavaTest類設為主類(Main class)(即啟動類)編譯之後會生成一個javatestjar文件程序運行的結果如圖
在命令行中可以采用以下方式: javafx jar javatestjar
實際上可以用純Java的方式來啟動程序只要把JavaFX的運行環境帶上即可如JavaFX程序例子教程
java Djavalibrarypath= classpath jar javatestjar
因為JavaFX需要的jar文件很多因此這種最純的java方法使用起來比較麻煩我覺得還是用javafx命令簡潔些 而且javafx就是上述java命令的封裝而已
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19399.html