質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Q&A

解決済

1回答

526閲覧

javafxのspinnerの入力制限

spla

総合スコア7

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

0グッド

0クリップ

投稿2018/03/25 05:01

JavaFX初心者です。
JavaFXで"時"、"分"、"秒"の3つをそれぞれに表すスピナーを作成しています。
IntegerSpinnerValueFactoryにて"時"の場合、0から23の最小最大値を設定しています。

スピナーが編集可能状態時で、文字列が入力された"時"にエラーを表す為に背景を赤色にしたい。
ご教示ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KSwordOfHaste

2018/03/25 05:44

Spinnerに関する部分のみでよいので初期化をどうしているかがわかるようなコードを提示してみてください。FXMLやcssを定義しているのであればそれも。
spla

2018/03/25 08:31

承知致しました。明日記載致します。
KSwordOfHaste

2018/03/25 08:43

質問の際には最初から「何をしていて、何が起こって、何がわからないか」を具体的に書くようにしてください。ご自分で書いたコードを提示しない質問は大抵の場合「何をアドバイスしていいかわからない」ので回答しづらいということを認識しておいてください。
guest

回答1

0

ベストアンサー

方針についてコメントしてみます。

JavaFXにおける外観の制御はHTML/CSSにならった方式となっており、表示内容を「状態に応じて変化させる」場合、

  • 状態をスタイルクラスとして定義する
  • スタイルクラスに応じた具体的な外観をスタイルシートに定義しておく

とするのが常道と思います。

Spinnerコントロールの編集部分の領域はデフォルトでは単なるTextFieldになっており、Spinner#getEditor()で取得できますが、ユーザーが編集する度にTextFieldのtextプロパティーの内容が変化しますので、その内容が整数かどうかでスタイルクラスを変化させると(スタイルシートの定義に応じて)TextFieldの外観が自動的に変化してくれます。


JavaFXの色の制御ですが、スタイルシート上に-fx-background-colorプロパティーを直接指定したり、-fx-baseを指定したりする方法があります。前者は背景部分が赤一色で塗りつぶされますが、後者は「影などの部分が赤を基調とした色合い」でそれっぽく色分けして描画されます。言葉ではうまく説明しづらいので実際にやってみると違いがわかるかと思います。

投稿2018/03/25 08:18

編集2018/03/26 14:07
KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

spla

2018/03/26 12:22

回答頂いた内容で解決できました! 今後はご意見頂いた内容も含めて質問させて頂きたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問