2016-04-25 3 views
0

私の簡単なアプリケーションには2つのレイアウトペインがあります。最初はVBoxペインです。これはルートノードです。 2番目のペインは子ペイン(ペインレイアウト)です。ルートペインにのみDropShadowエフェクトを使用したい私は文書に従ってそれを行う。残念ながら、私は両方のペインに対してドロップシャドウ効果を持っています。ルートと子供のため。それはバグですか、それとも1つのペインにしか設定できないのでしょうか?私はpane.setEffect(null)を使用しようとしていましたが、成功しませんでした。ペインに子を追加すると、新しいノードには影もあります。レイアウトのメソッドsetEffectの使い方

JavaFX8(Windows 7 - 64)を使用しています。

ありがとうございます。

public void start(Stage stage) 
{ 
     VBox vbox = new VBox(); 
     vbox.setPadding(new Insets(30)); 

     BorderStrokeStyle style = new BorderStrokeStyle(StrokeType.INSIDE, StrokeLineJoin.MITER, StrokeLineCap.BUTT, 10, 0, null); 
     BorderStroke stroke = new BorderStroke(Color.BLUE, style, CornerRadii.EMPTY, new BorderWidths(1), null); 
     vbox.setBorder(new Border(stroke)); 

     DropShadow dropShadow = new DropShadow(); 
     dropShadow.setOffsetX(10); 
     dropShadow.setOffsetY(10); 
     vbox.setEffect(dropShadow); 

     Pane pane = new Pane(); 
     pane.setBorder(new Border(stroke)); 

     pane.setPrefWidth(500); 
     pane.setPrefHeight(500); 

     vbox.getChildren().add(pane); 

     stage.setScene(new Scene(vbox)); 
     stage.show(); 
} 

添加:

は、CSSを使用しようとしていた: vbox.setStyle( "-fx効果:ドロップシャドウ(ガウス、灰色、10、0.6、10、10);"); 同じことですが、効果は両方のペインに適用されました。 ((

+0

'pane.setEffect(null);'を使って子ペインの効果を設定しようとしましたか? –

+0

成功せずに((私は影の効果のためにCSSを使用しようとします – Uladzimir

+1

[http://stackoverflow.com/questions/20898947/add-dropshadow-only-to-border-of-grid-pane-javafx-2-2]( http://stackoverflow.com/questions/20898947/add-dropshadow-only-to-border-of-grid-pane-javafx-2-2) – jns

答えて

0

ここで私は自分の質問に答えるためにしようとしています。

を私はいくつかの簡単な調査を行い、それはバグではありませんように見えます。ペインのための現実の行動を提供しようとする試みです。

ペインに不透明な背景がない場合 - すべてのペインの子も(所有者ペインにそれがある場合は)影を持たなければなりません。一方、ペインが実線の背景を持つ場合、

だから...ペインの影を避けるために、ペインの背景が不透明である必要があります。子供の形やペインです。

確かに、それは気づくのが良いでしょう。

関連する問題