您的位置:首页 > 文旅 > 旅游 > Java语言程序设计基础篇_编程练习题**15.18(使用鼠标来移动一个矩形)

Java语言程序设计基础篇_编程练习题**15.18(使用鼠标来移动一个矩形)

2024/12/23 10:11:14 来源:https://blog.csdn.net/2301_78998594/article/details/140626780  浏览:    关键词:Java语言程序设计基础篇_编程练习题**15.18(使用鼠标来移动一个矩形)
**15.18(使用鼠标来移动一个矩形)
  • 请编写一个程序显示一个矩形。可以使用鼠标单击矩形内部并且拖动(即按住鼠标移动)矩形到鼠标的位置。鼠标点成为矩形的中央
  • 习题思路:
  1. 新建一个面板Pane(),新建一个Rectangle()

  2. 为Rectangle注册一个事件(鼠标拖动:setOnMouseDragged())

  3. 设置Rectangle的xy为当前鼠标位置的(mouseX-Rw/2.0),(mouseY-Rh/2.0),Rw为矩形的宽,Rh为矩形的高。因为矩形本身的xy坐标是从左上角开始的,所以要减去宽与高的一半。

代码示例:编程练习题15_18UseMouseMoveRectangle.java

package chapter_15;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;public class 编程练习题15_18UseMouseMoveRectangle extends Application{@Overridepublic void start(Stage primaryStage) throws Exception {Pane pane = new Pane();Rectangle rectangle = new Rectangle(120, 130, 60, 40);pane.getChildren().add(rectangle);rectangle.setOnMouseDragged(e ->{double mouseX = e.getX();double mouseY = e.getY();double rw = rectangle.getWidth();double rh = rectangle.getHeight();double x = mouseX-rw/2.0;double y = mouseY-rh/2.0;rectangle.setX(x);rectangle.setY(y);});Scene scene = new Scene(pane, 300, 300);primaryStage.setTitle("编程练习题15_18UseMouseMoveRectangle");primaryStage.setScene(scene);primaryStage.show();}public static void main(String[] args) {Application.launch(args);}
}
  •  结果展示

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com