2014-01-13 48 views

回答

8

JavaFX使用GTK2庫,不太可能在不久的將來切換。 這裏是相關的問題 - https://javafx-jira.kenai.com/browse/RT-35264

UPDATE: JavaFX的錯誤現在對bugs.openjdk.java.net:

在上期問題中有一條評論

由於在同一個應用程序混合GTK2和GTK3導致此 問題,我們可能必須提供兩個本機庫,一個用於GTK2 ,一個用於GTK3

因此,從長遠來看(JDK 9版本)它可能是能夠進行對GTK3運行

== UPDATE(2016年5月11日)

新功能(8087516: Conditional support for GTK 3 on Linux)允許我們使用任何GTK v2或3使用JavaFX。默認值沒有改變 - gtk 2將被優先使用。

-Djdk.gtk.verbose=true // Output the version detected and used 

-Djdk.gtk.version=3 // Toggles the preferred version to GTK 3 

更多細節可以發現here

0

沒有簡單的解決方案。 JavaFX有它自己的渲染框架。據我瞭解,這是基於OpenGL,並不使用任何本機代碼。沒有這個,JavaFX將無法使用CSS和視覺效果來設計UI。

如果你真的需要這個,那麼你必須編寫自己的庫來模擬使用JavaFX場景圖和其他工具的Gtk3。但是,這不會允許你訪問本地組件。

+0

我有一個非常簡單的應用程序 - https://gist.github.com/ibuziuk/8351313。運行它並在終端中使用「sudo pldd [pid] | grep gtk」後,我得到了一個帶有gtk2庫的輸出。我想檢查的是,javaFx是否與gtk3兼容? –

+0

JavaFX使用包含AWT的Java,它在某些平臺上與GTK鏈接。這並不意味着您可以使用它創建JavaFX UI。 –

+0

是的,但可以通過FXCanvas和JFXpanels將javaFx組件嵌入到Swing/AWT/SWT組件中。它適用於gtk2,但不適用於gtk3。所以,我爲javaFx團隊創建了一個bug - https://javafx-jira.kenai.com/browse/RT-35264。 –

0

你最好的機會是聊到Java的侏儒人。他們實現了他們的庫,使得用GTK接口編寫Java應用成爲可能。應該是可能的擴展,以支持JavaFX。 http://java-gnome.sourceforge.net/

相關問題