fix bug: DrawingCanvas.prefWidth : A bound value cannot be set.
This commit is contained in:
Generated
+1
-1
@@ -8,7 +8,7 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_25" default="true" project-jdk-name="openjdk-25" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_24" default="true" project-jdk-name="openjdk-25" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -133,9 +133,11 @@ public class Controller implements Initializable {
|
|||||||
drawingCanvas = new DrawingCanvas(pageContent);
|
drawingCanvas = new DrawingCanvas(pageContent);
|
||||||
drawingCanvasContainer.getChildren().add(drawingCanvas);
|
drawingCanvasContainer.getChildren().add(drawingCanvas);
|
||||||
|
|
||||||
// 绑定Canvas大小到容器
|
// 使用AnchorPane的约束来填充容器
|
||||||
drawingCanvas.prefWidthProperty().bind(drawingCanvasContainer.widthProperty());
|
AnchorPane.setTopAnchor(drawingCanvas, 0.0);
|
||||||
drawingCanvas.prefHeightProperty().bind(drawingCanvasContainer.heightProperty());
|
AnchorPane.setLeftAnchor(drawingCanvas, 0.0);
|
||||||
|
AnchorPane.setRightAnchor(drawingCanvas, 0.0);
|
||||||
|
AnchorPane.setBottomAnchor(drawingCanvas, 0.0);
|
||||||
|
|
||||||
// 创建属性面板
|
// 创建属性面板
|
||||||
propertyPanelComponent = new PropertyPanel(drawingCanvas);
|
propertyPanelComponent = new PropertyPanel(drawingCanvas);
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
package dev.bytevibe.hyperpoint;
|
package dev.bytevibe.hyperpoint;
|
||||||
|
|
||||||
import javafx.geometry.Bounds;
|
|
||||||
import javafx.scene.canvas.Canvas;
|
import javafx.scene.canvas.Canvas;
|
||||||
import javafx.scene.canvas.GraphicsContext;
|
import javafx.scene.canvas.GraphicsContext;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.input.MouseButton;
|
|
||||||
import javafx.scene.input.MouseEvent;
|
import javafx.scene.input.MouseEvent;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
@@ -24,7 +22,7 @@ public class DrawingCanvas extends Pane {
|
|||||||
|
|
||||||
public DrawingCanvas(PageContent pageContent) {
|
public DrawingCanvas(PageContent pageContent) {
|
||||||
this.pageContent = pageContent;
|
this.pageContent = pageContent;
|
||||||
this.canvas = new Canvas(755, 485);
|
this.canvas = new Canvas();
|
||||||
|
|
||||||
getChildren().add(canvas);
|
getChildren().add(canvas);
|
||||||
|
|
||||||
@@ -33,9 +31,18 @@ public class DrawingCanvas extends Pane {
|
|||||||
setOnMouseDragged(this::handleMouseDragged);
|
setOnMouseDragged(this::handleMouseDragged);
|
||||||
setOnMouseReleased(this::handleMouseReleased);
|
setOnMouseReleased(this::handleMouseReleased);
|
||||||
|
|
||||||
setPrefSize(755, 485);
|
|
||||||
setStyle("-fx-border-color: #e0e0e0; -fx-border-width: 1;");
|
setStyle("-fx-border-color: #e0e0e0; -fx-border-width: 1;");
|
||||||
|
|
||||||
|
// 绑定Canvas大小到Pane大小
|
||||||
|
widthProperty().addListener((obs, oldVal, newVal) -> {
|
||||||
|
canvas.setWidth(newVal.doubleValue());
|
||||||
|
redraw();
|
||||||
|
});
|
||||||
|
heightProperty().addListener((obs, oldVal, newVal) -> {
|
||||||
|
canvas.setHeight(newVal.doubleValue());
|
||||||
|
redraw();
|
||||||
|
});
|
||||||
|
|
||||||
// 初始绘制
|
// 初始绘制
|
||||||
redraw();
|
redraw();
|
||||||
}
|
}
|
||||||
@@ -79,6 +86,8 @@ public class DrawingCanvas extends Pane {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 鼠标释放事件处理
|
* 鼠标释放事件处理
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user