0

テキストフィールドのツールチップのようなヘルプ表示として使用されるポップオーバーを使用しています。コンテンツとして 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
4

1 に答える 1