【发布时间】:2014-06-20 10:11:01
【问题描述】:
我正在使用我在 JavaFX 中构建的关卡编辑器的 GUI,我希望能够将画布对象的大小调整为新的拆分窗格尺寸。似乎我尝试过的一切都失败了。这包括将窗格对象传入并直接使用其宽度,使用窗口大小侦听器并将宽度和高度属性绑定到拆分窗格的属性。有任何想法吗?这是调整大小之前的样子:
调整大小后:
有人有什么想法吗?该类的代码相当广泛,但调整大小的代码将包含在此处:
public Canvas canvas;
public String tabTitle;
public VBox layout;
public GraphicsContext g;
public Core core;
public CanvasTab(Core core, String tabTitle){
this.core = core;
this.canvas = new Canvas(core.scene.getWidth() - 70, core.scene.getHeight() - 70);
layout = VBoxBuilder.create().spacing(0).padding(new Insets(10, 10, 10, 10)).children(canvas).build();
this.g = canvas.getGraphicsContext2D();
g.setFill(Color.BLACK);
g.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
HBox.setHgrow(layout, Priority.ALWAYS);
this.setContent(layout);
this.setText(tabTitle);
canvas.widthProperty().bind(layout.widthProperty().subtract(20));
canvas.heightProperty().bind(layout.heightProperty().subtract(20));
}
public CanvasTab(Canvas canvas){
this.canvas = canvas;
}
【问题讨论】:
-
画布(我假设)调整大小正确,但是在构建画布选项卡时,您填充了画布大小的黑色矩形。如果您要使用画布并希望它重新调整大小,您可能需要在调整大小时重新绘制所有内容(或至少某些内容)。