Canvas 由于局部值的更改,我们如何更改JavaFX画布的大小?

Canvas 由于局部值的更改,我们如何更改JavaFX画布的大小?,canvas,javafx,resize,Canvas,Javafx,Resize,在stackOverflow上有很好的解决方案,可以在用户调整窗口大小时更改JavaFX画布的大小。但是,由于画布上的输入更改导致变量更改和重绘,而不是用户调整大小,如何更改画布的大小呢 这是否需要绑定到Canvas类中的某个字段而不是周围的窗口?一个很好的提示是执行以下5个步骤。但我不知道如何更改步骤5,以便将width属性绑定到类的一个字段——将要更改的字段 创建Canvas的子类 重写isResizable()方法并返回true 重写prefWidth()和prefHeight()方法。返

在stackOverflow上有很好的解决方案,可以在用户调整窗口大小时更改JavaFX画布的大小。但是,由于画布上的输入更改导致变量更改和重绘,而不是用户调整大小,如何更改画布的大小呢

这是否需要绑定到Canvas类中的某个字段而不是周围的窗口?一个很好的提示是执行以下5个步骤。但我不知道如何更改步骤5,以便将width属性绑定到类的一个字段——将要更改的字段

  • 创建Canvas的子类
  • 重写isResizable()方法并返回true
  • 重写prefWidth()和prefHeight()方法。返回Canvas.getWidth()和Canvas.getHeight()的值
  • 将侦听器添加到画布的宽度和高度属性,以便在画布大小更改时触发重画
  • 将画布的宽度和高度属性绑定到父窗格的宽度和高度属性

  • 您所说的“输入更改”是指用户做某事的结果吗?您通常会通过事件处理程序来执行此操作。是的,但我不知道如何执行此操作。请看我上面编辑的问题。我刚刚找到了另一种方法,在这种情况下似乎是可行的:删除当前画布并创建另一个画布。容易多了。