我目前正在制作一个绘画应用程序并创建了几个正在运行的工具,但是在尝试创建“绘制直线”工具时遇到了问题
所以我基本上画了一条从 A 点到 B 点的线并且它起作用了,这条线在那里,但是,当我切换我的其他工具(绘制圆形、矩形等)时,形状与直线同时绘制,尽管“画线”按钮被关闭。
下面的代码将允许您绘制直线,您可以尝试打开和关闭不同的按钮,当您将光标拖过窗格时仍会绘制直线。
任何人都知道我犯了什么样的错误,以及任何可能的修复和/或替代解决方案?
(事件处理程序在那里,以便我可以选择绘制的形状,如果需要,稍后更改它们,此代码是我的绘画应用程序的精简版本)
public class DrawLine extends Application {
@Override
public void start(Stage primaryStage) {
ToggleButton lineButton = new ToggleButton ("Draw Line");
ToggleButton Button = new ToggleButton ("Button with no function");
BorderPane pane = new BorderPane();
ToolBar toolbar = new ToolBar();
Scene scene = new Scene(pane, 1200, 800);
pane.setLeft(toolbar);
toolbar.getItems().addAll(lineButton, Button);
// Draw Line
scene.addEventHandler(MouseEvent.MOUSE_CLICKED, me -> {
if(lineButton.isSelected() & me.getButton().equals(MouseButton.PRIMARY) ) {
scene.setOnMousePressed(event -> {
Line line = new Line();
line.setStartX(event.getX());
line.setStartY(event.getY());
scene.setOnMouseDragged(e->{
line.setEndX(e.getX());
line.setEndY(e.getY());
});
pane.getChildren().add(line);
});
}
});
primaryStage.setTitle("Paint App");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch();
}
}
蓝山帝景
吃鸡游戏
随时随地看视频慕课网APP
相关分类