2017-09-08 61 views
0

自定義窗口,我一直在做一些研究,並一直沒能找到很多信息。用於JavaFX應用程序

我見過很多的JavaFX項目(展示),其往往具有自定義窗口。在JavaFX中,我無法在文檔中找到有關如何實現此目的的任何內容。

這是通過Java還是非Java庫實現?

像這樣的事情enter image description here

+1

我會想象,可以使用JavaFX與[undecorated]完成(http: //docs.oracle.com/javase/8/javafx/api/javafx/stage/StageStyle.html#UNDECORATED)階段和CSS的整個負載,也許在最後一行一些自定義控件。但是,你真正的問題是什麼? 「這是怎麼寫的?」沒有人知道,除了編寫它的程序員。你從哪裏得到屏幕截圖? –

+0

@James_D我不是確切的代碼之後,而是將它用作使用JavaFX完成的一些示例。問題是通過將其他庫或其他語言庫集成到JavaFX中實現了這種效果?圖片來自http://fxexperience.com/category/demo/ – ArcherGilly

+1

它是否出現你來點擊它,閱讀它說什麼它是如何寫的?除了「這是它在你從中得到這個的網頁上說的是什麼」以外,你還希望得到什麼樣的答案? –

回答

3

您的圖片結果通過JavaFX現有功能


achived什麼你要找的是一個Undecorated WindowTransparent Window。這使得你的窗戶不裝飾...

但你也必須設置Scene背景transparent否則背景將是白色的。

代碼,以使該階段未修飾的是:primaryStage.initStyle(StageStyle.UNDECORATED);

代碼設置場景背景透明:使用CSSscene.setFill(Color.TRANSPARENT);



剩下的僅僅是一個設計工作...(A ImageView在中間和CSS ontop的風格按鈕)

PS:如果Stage未裝飾你不能再用鼠標調整它的大小。一個好的API解決這個問題(使其再次調整大小)是:BorderlessScene

----的總結,----

  1. primaryStage.initStyle(StageStyle.UNDECORATED);
  2. scene.setFill(Color.TRANSPARENT);
  3. --Optional--使用BorderlessScene進行調整大小
+0

謝謝你,我知道底色和透明的功能,但沒有看到它的這種方式,無法將2和2放在一起。 – ArcherGilly

+0

沒問題:)。現在玩得開心,並建立自己的GUI – Developer66