2016年7月25日月曜日

[実装メモ] JavaFXのTextAreaで1行の高さを取りたい時

JavaFXでテキストエリアを装飾したいときなど1行の高さを知りたい時のメモ


//TextAreaの準備
TextArea hogehoge = new TextArea();
hogehoge.appendText("test");

//TextAreaのテキストがある部分の高さをのみを持ってくる
Text text = (Text)hogehoge.lookup(".text");
Double textHeight = text.getBoundsInLocal().getHeight();

こうすることでテキストエリアではなくテキストエリアのテキストがある部分の高さを持ってこれる.
これを行数で割れば1行の高さを求めることができる.

これで環境に依存することなくテキストエリアを装飾することが可能になる.


/*
開発環境のMBPでは1行が17px, 利用者の環境の想定となるUbuntuは13pxだった
lookupメソッドの存在と引数がわからんとどうにもうまくできんぞこれ…
*/


参考ページ
http://stackoverflow.com/questions/27818470/javafx-get-line-height-of-textarea

0 件のコメント:

コメントを投稿