您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)JavaFX功能與Swing的關(guān)系是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
JavaFX包含了許多強(qiáng)大的功能,它們都是Java SE不具備的,如圖表Charting,動畫,媒體播放,RSS/Atom等,于是程序員常常討論如何在Java中調(diào)用JavaFX功能。在Stephen Chin的開源項目JFXtras版本中, 提供了一個JavaFX的封裝類,可以在Swing應(yīng)用中顯示JavaFX的圖性元素(動畫,圖表等)。
這是個十分有用的功能,對廣大的Java(Swing)開發(fā)人員來說是個好消息。JFXtras的源代碼中包含了相關(guān)的演示程序(SceneToJComponentScene.fx和 SceneToJComponentTest.java)。我把這個程序修改了一下,以便說明問題。
/* *MyScene.fxhttp://www.javafxblogs.com *@authorHenryZhang */ packageswingtest; importjavafx.scene.Scene; importjavafx.scene.text.*; importjavafx.scene.paint.*; importjavafx.scene.shape.Rectangle; importjavafx.animation.Timeline; importjavafx.animation.KeyFrame; defw=500; defh=400; publicclassMySceneextendsScene{ varxx=w/3; varyy=h/2; varrotate=0; vartext=""; vartl=Timeline{ repeatCount:Timeline.INDEFINITE keyFrames:[ KeyFrame{ time:70ms action:function(){ text=JavaFXToSwingTest.tf.getText(); rotate=(rotate+5)mod360; } } ] } overridevarcontent=[ Rectangle{ width:w,height:h fill:Color.BLUE }, Text{ font:Font{ size:24 } layoutX:bindxx layoutY:bindyy rotate:bindrotate content:bindtext fill:Color.YELLOW } ]; init{tl.play();} }
1) 在上述程序中,我們用JavaFX的代碼去輪詢Java的變量值,實際中這會損失比較多的性能,所以我們可以從Java代碼中主動把數(shù)據(jù)變化通知JavaFX。這需要一種從Java調(diào)用javafx的技巧,可以參見本人文章:用Java代碼調(diào)用JavaFX功能。
2) 在Swing程序中調(diào)用JavaFX是可行的,那么應(yīng)該怎樣編譯和運行這樣的程序呢。其實,JavaFX功能也就是一些jar文件,因此和Java的結(jié)合方式還是比較簡單的。編譯的方法主要有兩種,一種就是用JavaFX 的編譯器javafxc來編譯Java和JavaFX的代碼。第二種就是用javafxc編譯JavaFX代碼,用javac編譯java代碼。運行程序的時候,我們可以選擇javafx或java命令即可。
看完上述內(nèi)容,你們對JavaFX功能與Swing的關(guān)系是什么有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。