2016-03-22 57 views
0

執行以下測試 - 青色矩形顯示居中。這是預期的結果。但是,爲什麼視口的minX和minY必須是負值?JavaFX節點快照X/Y參數必須爲負

public class NodeScreenshotTest extends Application 
{ 
    public static void main(String[] args) 
    { 
    Application.launch(args); 
    } 

    @Override 
    public void start(Stage stage) 
    { 
    stage.setScene(new Scene(createContent())); 
    stage.getScene().setFill(Color.BEIGE); 
    stage.setTitle(getClass().getSimpleName()); 
    stage.show(); 
    } 

    private Parent createContent() 
    { 
    BorderPane content = new BorderPane(); 
    Rectangle rectangle = new Rectangle(50, 50); 
    rectangle.setFill(Color.AQUA);  
    SnapshotParameters params = new SnapshotParameters(); 
    params.setFill(Color.YELLOW); 
    // Viewport x/y negative??? 
    params.setViewport(new Rectangle2D(-15, -15, 80, 80)); 
    ImageView iv = new ImageView(rectangle.snapshot(params, null)); 
    content.setCenter(iv); 
    return content; 
    } 
} 

回答

0

此相關的座標系的原點(0,0)爲您拍攝快照的節點,即在你的情況下,矩形的左上角。現在你似乎想要一個寬度爲15個光柵單位的矩形邊框。所以很明顯,你的快照必須從-15,-15的位置開始,並且必須具有50 + 2 * 15的寬度和高度。

相關問題