テキストフィールドのツールチップのようなヘルプ表示として使用されるポップオーバーを使用しています。コンテンツとして Label と TextArea が含まれており、ユーザーがテキスト フィールドに入力すると作成されます。(経由FocusPropery.addListener
)
以下を使用してスタイルを適用します。
popOver.getRoot().getStylesheets().add(...)
(ドキュメンテーションドキュメンテーションにあるように)
これは TextArea では機能しますが、ラベルでは部分的にしか機能しません。
私のスタイルは次のようになります。
*{
-tb-dark-grey: rgb(32,38,44);
}
.root {
-fx-base: -tb-dark-grey;
-fx-background: -tb-dark-grey;
-fx-control-inner-background: -tb-dark-grey;
}
これは私のメインウィンドウで非常にうまく機能します。すべてのラベルと TextArea を含みます。すべてが濃い青色の背景になり、白いテキストが表示されます。ただし、ポップオーバーのラベルの場合、テキストの色のみが白に変更されますが、背景は通常の明るい灰色のままです。
回避策として TextArea を使用してみました。これはスタイルに適しています。しかし、それは常にテキスト フィールドからフォーカスを奪います。これにより、何かを入力することができなくなります。TextArea を無効にすると機能しますが、TextArea のスタイルが変更されます。
this other questionにあるスタイルを適用しようとしました。フォーカスを戻そうとしましたが、これもうまくいきませんでした。
popup.Show(this.inputField)
this.inputField.requestFocus(); // also tried this with Platform.runLater