私はJavaFX 8を使用しており、状況に応じて確認メッセージまたはエラーメッセージのいずれかを表示する読み取り専用TextAreaを持っています。私は確認メッセージに黒いテキストを付けるが、エラーメッセージには赤いテキストが必要だ。 JavaFX 8でどうすればいいですか?当面はプログラムで行う方が好きですが、プログラムの次のドラフトでも同様にFXMLでどのように行うことができるかに関心があります。JavaFX TextAreaのテキストの前景色を動的に変更するにはどうすればよいですか?
基本的に、私はのtableViewを表示し、ユーザ編集にテーブルビューのセル内の情報をさせるのです。ユーザーがセルに無効な値を入力した場合、何が間違っているのか明確なエラーメッセージを表示して、そのメッセージを赤色(または何らかの方法で強調表示)にしたいと考えています。彼らが許容可能な方法で値を変更する場合は、テーブルとデータベースで値を正常に変更したことを知らせる確認メッセージが必要です。私はそのメッセージが黒(または類似)であることを好むだろう。
私はJavaFXのにかなり新たなんだと何のsetForeground()、それ以上が存在しないことを知って驚いています。今、どうすればいいのですか?または、私は何らかのHTMLフィールドを使用する必要がありますか?私はそれらのまだ....
==================================でプレイしていません=================== フォローアップの質問
私は意図を誤解している可能性がありますJames_Dの答えのが、私は2つのpseudoclasses、エラーメッセージの1および情報メッセージのための1つの作成:私は単に、メッセージ、情報またはエラーのいずれかの種類を書くことができ、簡単な方法を持つことができることを望んでいた
private static final PseudoClass ERROR = PseudoClass.getPseudoClass("error");
private static final PseudoClass INFO = PseudoClass.getPseudoClass("info");
をそのメソッドに擬似クラスを渡します。
writeMessage("This is an error message.", ERROR);
および情報メッセージについては、このよう:エラーメッセージのために、次のように私は、メソッドを呼び出す
private void writeMessage(String message, PseudoClass pseudoClass) {
messageArea.pseudoClassStateChanged(pseudoClass, true);
messageArea.setText(message);
}
:
writeMessage("This is an information message.", INFO);
そして、これは私が追加するものである。ここの方法です私のCSSファイルに:
.text-area:error {
-fx-text-fill: red ;
-fx-font-weight: 700;
}
.text-area:info {
-fx-text-fill: black;
-fx-font-weight: normal;
}
エラーメッセージが太字で表示されないのはなぜですか? (すべてのメッセージは通常のフォントで表示されます)。なぜ、いくつかのエラーメッセージが赤色で表示されないのはなぜですか?私は一貫して同じ方法でwriteMessage()を呼び出します。 JavaFXので
テキストエリアに黒と赤のテキストが同時に表示されるようにするには、テキストエリアではできません。おそらく['HTMLEditor'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/HTMLEditor.html)の使用を検討してください。どちらか一方だけが必要な場合は、 'setStyle(...)'を使います。明確に私はより完全な答えを提供することができます。 –
一度に1つの前景色が必要です。少なくともそれは私の最初の概念です。変化する可能性があります。 – Henry
擬似クラスのいずれかを切り替えるごとにしますか?このアプローチはうまくいくかもしれませんが、おそらく過度に複雑です。 2つの可能性がある場合は、擬似クラスが1つだけ必要です。あなたが必要とする2つのCSSセレクタは '.text-area {}'と '.text-area:error {。 } '。 3つ以上の可能性がある場合は、より多くの疑似クラスが必要になるかもしれませんが、ロジックはすべての疑似クラス状態が正しい値に設定されていることを保証する必要があります。 –