Enable GTK 3 on Linux
せっかくだからJava 9のドキュメントを適当に読んでいる。
これまでlinux上でのグラフィカルなアプリケーションはGTK+2ベースだったが、
9ではそれ以外にGTK+3もサポートするようになった。
GtkTest.java
import javafx.application.Application; import javafx.application.Platform; import javafx.stage.FileChooser; import javafx.stage.Stage; public class GtkTest extends Application { @Override public void start(Stage stage) { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("jdk.gtk.version: " + System.getProperty("jdk.gtk.version")); fileChooser.showOpenDialog(null); Platform.exit(); } }
GTK+2がない場合はGTK+3での動作を試すようだが、
両方存在する場合は今までどおり2が使われる。
使用するバージョンを指定する場合は、
システムプロパティjdk.gtk.versionに2か2.2か3を値として設定する。
したがって、以下の三つの起動法
$ java GtkTest $ java -Djdk.gtk.version=2 GtkTest $ java -Djdk.gtk.version=2.2 GtkTest
はプロパティ値を含むタイトルを除けば同じ結果となった。
$ java -Djdk.gtk.version=3 GtkTest
の場合は、出てくるファイル選択ダイアログが少し変化した。
自分の環境では、ダイアログ窓のサイズが大きくなり、
ダイアログ上部に「場所」フィールドが加わった。
また、左側のペインに「場所」リスト以外に「デバイス」リストが追加された。
*1
*1:日記用にスクリーンショットを撮ったがアップロードすら面倒なので文章だけで