4
對於整個JavaFX來說,我很新,正如你可能知道的那樣。這是我在玩Canvas節點時遇到的問題。我有一個BorderPane作爲我的根節點,我想要一個Canvas佔據它中間的所有可用空間。但是,我在執行確切的行爲時遇到了一些麻煩。這裏是我一直在努力的只是:BorderFane中的JavaFX-8畫布
public void start(Stage stage){
BorderPane root=new BorderPane();
Canvas canvas=new Canvas(250,250);
//canvas.widthProperty().bind(root.widthProperty());
//canvas.heightProperty().bind(root.heightProperty());
GraphicsContext gc=canvas.getGraphicsContext2D();
new AnimationTimer(){
@Override
public void handle(long l){
double width=canvas.getWidth(),height=canvas.getHeight();
gc.clearRect(0,0,width,height);
gc.strokeRect(0,0,width,height);
gc.strokeLine(0,0,width,height);
gc.strokeLine(0,height,width,0);
}
}.start();
root.setCenter(canvas);
root.setBottom(new Button("Placeholder"));
root.setTop(new Button("Placeholder"));
stage.setScene(new Scene(root));
stage.show();
}
擴大爲面板做相反的,我的畫布只是停留在它的中心,保留了其原始大小。如果重新添加頂部附近的兩條註釋行,Canvas會隨着窗格的增加而縮小,但不涉及其中心的尺寸(如預期的那樣)。有沒有辦法將這種綁定行爲應用到BorderPane的中心,或者另一種方法來完成這一點,我不知道?
非常感謝。我最終結合了我們的方法,並將Canvas的寬度和高度屬性綁定到「常規」窗格,然後將Canvas添加到該窗格,然後將該窗格設置爲原始BorderPane的中心。 –
我很高興能幫到你:) – nZeloT