すずしんろぐ

人生大逆転を目指す、鈴木俊吾の成長日記

JavaFX TextAreaの背景色を動的に変更する方法

time 2016/10/18

Tag:

こんにちは、すずしんです。

私は現在、JavaFXでフリーソフトの開発をしているのですが…。
その際に、TextArea背景色変更したいなとなったのですよね。
ただ、これがなかなか上手くいかずに手間取りました…。
実際にやり方が分かると簡単なのですけどね。
そこで、同じ問題で悩んでいる方に、その方法についてシェアするために記事として残しておきます。

TextAreaの背景色の変更方法

TextAreaに限らず、JavaFXのGUIのコントロールはsetStyleメソッドを使ってスタイルを指定することが出来ます。
このsetStyleメソッドの中で、「-fx-background-color」の値を指定してやると背景色を変更可能です。

ただ、TextAreaの場合、このように普通にやろうとすると背景色が変わりません。
TextAreaのボーダーの色が変わるだけでした。
本当にやりたいのは、テキストエリア全体の背景色を変更したいのですからね。
これではだめです。

そこで、私はどうしたものかと悩んでやり方を検索してみました。
そして見つけたのがlookupメソッドを介してsetStyleするというものです。
TextAreaの「.content」要素をlookupしてから、その要素に対してsetStyleしてやります。

これは一行にまとめることができますね。
つまり、以下のようにも指定可能です。

ちなみに、この方法で背景色を変える場合にはちょっとした注意点があります。
それは、レイアウトが完了してからでないと設定が反映されないという事です。
すなわち、GUIを構築したStageをshowした後に指定してやる必要があります。

サンプルコード

ここでは、簡単なサンプルコードを示します。
TextAreaのみの画面を表示して、そのTextAreaの背景色を「#cccccc」に設定しています。

実行結果

上記、サンプルコードを実行した結果が以下の画面のようになります。
ここでは、画面に表示されているのがテキストエリアであることが分かるように、適当なテキストを入力してみました。

JavaFX - TextAreaの背景色変更

ひとこと

TextAreaの背景色を変えるには、一度lookupメソッドを介してからsetStyleすれば良いです。
やり方が分かってしまえば簡単ですよね。
もしTextAreaの背景色を変えたい場合には、ぜひ上記の方法を試してみてくださいね。

参考

javafx textarea background color not css – Stack Overflow

follow us in feedly

down

コメントする




ファッション

日記

プロフィール

鈴木俊吾(すずしん)

鈴木俊吾(すずしん)

大学卒業後、公務員を目指して試験に合格するも何故か辞退。その後は無職のまま特に何もない無駄な日々を過ごす。その内に精神状態がおかしくなり統合失調症を発症。今までに4度の入院を経験。ただいま絶賛人生のどん底を経験中。そんな私ですが、現在はフリーランスのプログラマーを目指して勉強を進めています。これまでにいくつかのアプリを公開しています。このブログは、人生大逆転を目指して奮闘する私の成長日記(?)です。どうか温かく見守って頂けるとありがたいです。 [詳細]

アクセスカウンター

since: 2016/11/15

人気記事

アーカイブ



ブログ村ランキング