5000164 is here

Scala で JavaFX の Canvas でテキストを表示する

Published 2018.1.14 by 菅原 浩

昨日の記事 ではすでに存在する画像を表示したが、やりたいことは生成したテキストを画像にするということだったので、まずはテキストを表示できるようにする。
最終的には画像にしたいので、画像に変換できる Canvas を利用する。
コードはこんな感じ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
val c = new Canvas(300, 300)
val gc = c.getGraphicsContext2D
gc.setFill(Color.GRAY)
gc.setFont(Font.font("Hiragino Sans", 20))
gc.fillText("テキスト", 50, 50)
val root = new StackPane()
root.getChildren.add(c)
val scene = new Scene(root, 350, 350)
primaryStage.setTitle("test")
primaryStage.setScene(scene)
primaryStage.show()

このコードで下記のような実行結果になる。

実行結果

参考

試行錯誤メモ

調べていたら WritableImage というもので画像を生成できると見かけたので最初は WritableImage で画像を表示してみたのだが、テキストを描画する方法がわからず、さらに調べていたら Canvas を発見したので Canvas を使用するようにした。

試行錯誤中に参考にしたもの