1

ControlsFX からポップオーバーのスタイルを設定する必要がありますが、失敗しています。

シーンに追加する独自の xxx.css スタイルシートがあり、(明らかに) 多くの JavaFX コントロールのスタイル設定に成功しています...

これをスタイルシートに設定しました (ControlsFX の popover.css からコピーして変更しました):

.popover > .border {
    -fx-stroke: linear-gradient(to bottom, rgba(0,0,0, .3), rgba(0, 0, 0, .7));
    -fx-stroke-width: 0.5;
    -fx-fill: rgba(30 , 30, 30, .95);
    -fx-effect: dropshadow(gaussian, rgba(0,0,0,.2), 10.0, 0.5, 2.0, 2.0);
}

しかし、Popover はボーダー スタイルを取得しません。ポップオーバーにスタイルを選択させるにはどうすればよいですか?

4

1 に答える 1

4

は別のウィンドウに表示されるためPopOver、プライマリ シーンではなく、PopOverコントロールでスタイルを設定できます。

スキン クラスのコントロールにスタイルがどのように適用されているかを見ると、次のようになりますPopOverSkin

stackPane = new StackPane();
stackPane.getStylesheets().add(
            PopOver.class.getResource("popover.css").toExternalForm());
stackPane.getStyleClass().add("popover"); 

これには次のstackPane方法でアクセスできます。

@Override
public Node getNode() {
    return stackPane;
}

スキンにアクセスした直後、つまり popOver が表示されたときに、スタック ペインにスタイル シートを追加するだけです。

popOver.show(...);

((Parent)popOver.getSkin().getNode()).getStylesheets()
    .add(getClass().getResource("MyPopOver.css").toExternalForm());
于 2014-12-16T22:46:21.853 に答える