有没有简单的方法通过移动鼠标绘制一些形状?
更具体地说,我正在做截图程序,所以我想选择以某种方式显示该区域。 我看到它就像在A点上按住鼠标键并实时移动到B点,在A点和当前点之间绘制矩形。
抱歉语言不好,英语不是我的母语。
答案 0 :(得分:1)
在这种情况下,我使用的是一个名为scene的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添加到场景中显示的窗格中,否则dragBox根本不可见。