我的简单应用程序有两个布局窗格。第一个是VBox窗格。它是根节点。第二个窗格是子窗格(窗格布局)。我只想在根窗格中使用DropShadow效果。我是根据文档来做的。不幸的是,我对两个窗格都有投影效果。对于根用户和子节点。它是一个bug,还是有一种方法可以只为一个窗格设置它?我尝试使用pane.setEffect( null ),但没有成功。当我向窗格添加一些子节点时,新节点也有阴影。
我使用JavaFX8 (Windows7- 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- effect : dropshadow(高斯,灰度,10,0.6,10,10 );“);同样的狗屎-效果应用于两个窗格。((
发布于 2016-04-27 04:57:51
在这里,我试图回答我自己的问题。
我做了一些简单的调查,它看起来不是一个bug。它是为窗格提供真实行为的一种尝试。
如果窗格没有非透明背景-所有窗格的子窗格也应该有阴影(如果所有者窗格有阴影)。另一方面,如果窗格的背景是实心的,那么子窗格就不能有阴影。直到你特意放上阴影。
所以..。您只需要为窗格提供不透明的背景,以避免窗格的子形状和窗格的阴影。
当然,在文档中注意到这一点会很好。
https://stackoverflow.com/questions/36843697
复制相似问题