我最近想在JavaFX中创建一个动画背景,类似于看到here的Swing示例.我使用Canvas
绘制,如Working with the Canvas API所示,和AnimationTimer
绘图循环,如Animation Basics所示.不幸的是,我’我不确定如何在调整封闭舞台大小时自动调整画布大小.什么是好方法?
在How to make canvas Resizable in javaFX?中检查了类似的问题,但是在那里接受的答案缺少在接受的答案here中说明的绑定.
解决方法:
我将两个先前的解决方案(@trashgod和@ clataq)结合起来,将画布放在一个窗格中并将其绑定到它:
private static class CanvasPane extends Pane {
final Canvas canvas;
CanvasPane(double width, double height) {
setWidth(width);
setHeight(height);
canvas = new Canvas(width, height);
getChildren().add(canvas);
canvas.widthProperty().bind(this.widthProperty());
canvas.heightProperty().bind(this.heightProperty());
}
}