2014-01-13 6 views

Antwort

8

JavaFX verwendet GTK2-Bibliotheken und wird wahrscheinlich nicht in naher Zukunft wechseln. Hier ist die damit verbundene Ausgabe - https://javafx-jira.kenai.com/browse/RT-35264

UPDATE: die JavaFX Bugs sind jetzt auf bugs.openjdk.java.net:

In der letzten Ausgabe gibt es einen Kommentar

Da GTK2 und GTK3 in der gleichen Anwendung Mischen verursacht dieses Problem, wir könnten zwei nativen Bibliotheken liefern, eine für GTK2 und eine für GTK3

also auf lange Sicht (JDK 9 Release) es könnte möglich sein, gegen GTK3

== UPDATE (11.05.2016)

Neue Funktion (8087516: Conditional support for GTK 3 on Linux) ermöglicht es uns, entweder GTK v2 oder 3 mit JavaFX zu verwenden, auszuführen. Der Standard hat sich nicht geändert - gtk 2 wird bevorzugt verwendet.

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

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

Weitere Details können here

0

Es gibt keine einfache Lösung. JavaFX hat ein eigenes Rendering-Framework. Soweit ich es verstehe, basiert das auf OpenGL und verwendet keinen nativen Code. Ohne dies wäre JavaFX nicht in der Lage, die Benutzeroberfläche mit CSS und visuellen Effekten zu stylen.

Wenn Sie das wirklich brauchen, dann müssen Sie Ihre eigene Bibliothek schreiben, die Gtk3 mit dem JavaFX-Szenengraph und anderen Werkzeugen emuliert. Dadurch können Sie jedoch nicht auf native Komponenten zugreifen.

+0

Ich habe eine sehr einfache App - https://gist.github.com/ibuziuk/8351313. Nachdem ich es ausgeführt und "sudo pldd [pid] | grep gtk" im Terminal verwendet hatte, bekam ich eine Ausgabe mit gtk2 libs. Was ich überprüfen möchte ist, ob javaFx mit gtk3 kompatibel ist? –

+0

JavaFX verwendet Java, das AWT enthält, das auf einigen Plattformen mit GTK verknüpft ist. Das bedeutet nicht, dass Sie damit JavaFX-UIs erstellen können. –

+0

Ja, aber es gibt eine Möglichkeit, die javaFx-Komponente über FXCanvas und JFXpanels in die Swing/AWT/SWT-Komponente einzubetten. Es funktioniert gut mit GTK2, aber nicht mit GTK3. Also habe ich einen Fehler im javaFx-Team erstellt - https://javafx-jira.kenai.com/browse/RT-35264. –

0

Ihre beste Chance zu sprechen, ist zu den Java-Gnome Jungs finden. Sie haben ihre Bibliothek implementiert, die es ermöglicht, Java-Anwendungen mit GTK-Schnittstellen zu schreiben. Sollte eine mögliche Erweiterung sein, um auch JavaFX zu unterstützen. http://java-gnome.sourceforge.net/

Verwandte Themen