有没有简单的方法通过移动鼠标来绘制某种形状?
更具体地说,我正在做一个屏幕截图程序,所以我想选择以某种方式显示该区域。 我认为这就像在 A 点上按住鼠标键并将其实时移动到 B 点,在 A 点和当前点之间绘制矩形。
抱歉语言不好,英语不是我的母语。
在本例中我使用了一个名为 scene 的场景对象。这个或类似的东西可能应该做你想要的,也许你必须在向上或向左拖动而不是向下和向右拖动的情况下在
dragBox.setTranslate
和 dragBox.setWidth
/ .setHeight
之间切换。
Rectangle dragBox = new Rectangle(0, 0, 0, 0);
dragBox.setVisible(false);
scene.addEventFilter(MouseEvent.ANY, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
if(mouseEvent.getEventType() == MouseEvent.MOUSE_CLICKED){
dragBox.setVisible(true);
dragBox.setTranslateX(mouseEvent.getX());
dragBox.setTranslateY(mouseEvent.getY());
}
if(mouseEvent.getEventType() == MouseEvent.MOUSE_MOVED && dragBox.isVisible()){
dragBox.setWidth(mouseEvent.getX() - dragBox.getTranslateX());
dragBox.setHeight(mouseEvent.getY() - dragBox.getTranslateY());
}
if(mouseEvent.getEventType() == MouseEvent.MOUSE_RELEASED)
dragBox.setVisible(false);
}
});
您还必须确保将dragBox添加到场景中显示的Pane中,否则dragBox将根本不可见。