1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      如何用純Java代碼調(diào)用JavaFX的功能

      本篇內(nèi)容介紹了“如何用純Java代碼調(diào)用JavaFX的功能”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

      成都創(chuàng)新互聯(lián)專注于大邑縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供大邑縣營銷型網(wǎng)站建設(shè),大邑縣網(wǎng)站制作、大邑縣網(wǎng)頁設(shè)計(jì)、大邑縣網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造大邑縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供大邑縣網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

      從Java調(diào)用JavaFX的三種方法分別為:

      1. 用ScriptEngineManager類。這是基于JSR-223規(guī)范的java腳本API( scripting API)。可以在java程序中運(yùn)行一些腳本,如 JavaFX script, javascript等。

      2. 通過JavaFX reflection API。這是JavaFX提供的反射API,幾乎可以調(diào)用所有的JavaFX類。

      3. 先用JavaFX類實(shí)現(xiàn)一個(gè)Java的interface,然后Java程序可以通過這個(gè)interface來調(diào)用JavaFX的功能。這中間的interface起了個(gè)橋梁的作用。 

      第三種方法應(yīng)該是比較“正規(guī)”而且“優(yōu)美”的調(diào)用方式。但是也有一點(diǎn)不足:程序代碼的入口必須從JavaFX啟動。這是因?yàn)镴avaFX程序比較容易生成JavaFX類的實(shí)例,從而可以供Java方使用。可是我們有時(shí)會碰到一些特定的情況,需要從Java端啟動代碼。例如,如果你已經(jīng)有了一個(gè)較完整的Java程序,你需要用調(diào)用JavaFX的某些功能,這時(shí)候較好的方法是把Java作為程序的入口。為了解決這個(gè)問題,我把第2和第3種方法作了融合,大家可以看看下面的例子。

      假定我們需要從Java中調(diào)用JavaFX的圖表(charting)功能。我們首先用JavaFX reflection API生成JavaFX類的實(shí)例。然后我們再通過java的interface來使用它。因此,我們先定義一個(gè)Java的interface:

      /*     * JavaInterface.java     *     * @author Henry Zhang  http://www.javafxblogs.com     */    package javatest;     public interface JavaInterface {       public void addData(String name, float data);       public void showChart();     }     /*   * JavaInterface.java   *   * @author Henry Zhang  http://www.javafxblogs.com   */  package javatest;  public interface JavaInterface {    public void addData(String name, float data);    public void showChart();  }

      下一步是創(chuàng)建JavaFX類MyChart來實(shí)現(xiàn)這個(gè)interface:

      /*     * MyChart.fx     *     * @author Henry Zhang http://www.javafxblogs.com     */    package javatest;         import javafx.scene.chart.PieChart;     import javafx.scene.Scene;     import javafx.scene.text.Font;     import javafx.scene.text.Text;     import javafx.stage.Stage;     import javafx.scene.chart.PieChart3D;         public class MyChart extends JavaInterface {       var chartData :  PieChart.Data[] = [];           public override function addData( l:String, v: Number):Void {     var llabelString = l;         var data =  PieChart.Data {       label : l       value : v       action: function() {     println("{labelString} clicked!");       }      } ;         insert data into chartData;       }           public override function showChart() : Void {     var chart =       PieChart3D {     data : chartData     pieThickness: 25    pieLabelFont: Font{ size: 9 };     pieToLabelLineOneLength: 10    pieToLabelLineTwoLength : 20    pieLabelVisible: true    pieValueVisible: true    translateY: -50     };         Stage {       title: "PieChart Window"      width: 520      height: 300      scene: Scene {     content: [       Text {     font : Font {     size : 16       }     x: 200    y: 20    content: "Pie Chart"      },       chart     ]       }     }       }     }     /*   * MyChart.fx   *   * @author Henry Zhang http://www.javafxblogs.com   */  package javatest;   import javafx.scene.chart.PieChart;  import javafx.scene.Scene;  import javafx.scene.text.Font;  import javafx.scene.text.Text;  import javafx.stage.Stage;  import javafx.scene.chart.PieChart3D;   public class MyChart extends JavaInterface {    var chartData :  PieChart.Data[] = [];     public override function addData( l:String, v: Number):Void {  var llabelString = l;   var data =  PieChart.Data {    label : l    value : v    action: function() {  println("{labelString} clicked!");    }   } ;   insert data into chartData;    }     public override function showChart() : Void {  var chart =    PieChart3D {  data : chartData  pieThickness: 25  pieLabelFont: Font{ size: 9 };  pieToLabelLineOneLength: 10  pieToLabelLineTwoLength : 20  pieLabelVisible: true  pieValueVisible: true  translateY: -50   };   Stage {    title: "PieChart Window"    width: 520    height: 300    scene: Scene {  content: [    Text {  font : Font {  size : 16     }  x: 200  y: 20  content: "Pie Chart"    },    chart  ]    }  }    }  }

      ***就是從java類JavaTest中調(diào)用圖表功能:

      /*     * JavaTest.java     * @author Henry Zhanghttp://www.javafxblogs.com     */    package javatest;         import javafx.reflect.FXClassType;     import javafx.reflect.FXLocal;     import javafx.reflect.FXLocal.Context;     import javafx.reflect.FXLocal.ObjectValue;         public class JavaTest {       public static void main(String args[]) {     Context context = FXLocal.getContext();     FXClassType instance = context.findClass("javatest.MyChart");     ObjectValue obj = (ObjectValue)instance.newInstance();         JavaInterface ji = (JavaInterface)obj.asObject();         String [] labels = {"January", "Febuary", "March", "April"};     int [] values = { 18, 20, 25, 37 };         for ( int i=0; i < values.length; i++ ) {       ji.addData(labels[i], values[i]);     }         ji.showChart();       }     }     /*   * JavaTest.java   * @author Henry Zhanghttp://www.javafxblogs.com   */  package javatest;   import javafx.reflect.FXClassType;  import javafx.reflect.FXLocal;  import javafx.reflect.FXLocal.Context;  import javafx.reflect.FXLocal.ObjectValue;   public class JavaTest {    public static void main(String args[]) {  Context context = FXLocal.getContext();  FXClassType instance = context.findClass("javatest.MyChart");  ObjectValue obj = (ObjectValue)instance.newInstance();   JavaInterface ji = (JavaInterface)obj.asObject();   String [] labels = {"January", "Febuary", "March", "April"};  int [] values = { 18, 20, 25, 37 };   for ( int i=0; i < values.length; i++ ) {    ji.addData(labels[i], values[i]);  }   ji.showChart();    }  }

      在代碼中,這3句是創(chuàng)建JavaFX類javatest.MyChart實(shí)例,

      Context context = FXLocal.getContext();     FXClassType instance = context.findClass("javatest.MyChart");     ObjectValue obj = (ObjectValue)instance.newInstance();     Context context = FXLocal.getContext();  FXClassType instance = context.findClass("javatest.MyChart");  ObjectValue obj = (ObjectValue)instance.newInstance();

      而一下這句則是把JavaFX實(shí)例轉(zhuǎn)化為Java可用的對象:

      JavaInterface ji = (JavaInterface)obj.asObject();

      如果你用的是NetBeans IDE, 你可以在項(xiàng)目屬性中把javatest.JavaTest類設(shè)為主類(Main class)(即啟動類)。編譯之后會生成一個(gè)javatest.jar文件。程序運(yùn)行的結(jié)果如圖:

      如何用純Java代碼調(diào)用JavaFX的功能

      在命令行中可以采用以下方式:

      javafx -jar javatest.jar

      實(shí)際上,可以用純Java的方式來啟動程序,只要把JavaFX的運(yùn)行環(huán)境帶上即可,如:

      java -Djava.library.path=""  -classpath "" -jar javatest.jar

      因?yàn)镴avaFX需要的jar文件很多,因此這種“最純”的Java方法使用起來比較麻煩。我覺得還是用JavaFX命令簡潔些, 而且JavaFX就是上述java命令的封裝而已。

      “如何用純Java代碼調(diào)用JavaFX的功能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


      網(wǎng)站欄目:如何用純Java代碼調(diào)用JavaFX的功能
      本文來源:http://ef60e0e.cn/article/gsjgcs.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        积石山| 喀什市| 花垣县| 沙田区| 出国| 修武县| 寻甸| 天长市| 榆中县| 安义县| 饶阳县| 且末县| 祁门县| 弥勒县| 小金县| 武冈市| 酒泉市| 湟源县| 常德市| 太保市| 龙岩市| 湖南省| 勐海县| 资源县| 通榆县| 师宗县| 贵州省| 方城县| 唐海县| 东乌珠穆沁旗| 白银市| 凤台县| 延安市| 平原县| 阿荣旗| 如皋市| 九龙坡区| 凌海市| 永安市| 宜兰市| 紫云|