鼠标事件(拖拽)
鼠标拖拽
在button1上点击(左中右键)后进行拖拽,拖拽区域没有限制
button1.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
// System.out.println("鼠标拖拽,次数:" + (++dragTime));
}
});
鼠标拖拽(当鼠标指针移除组件时,事件不会被触发)
button1.setOnMouseDragOver(new EventHandler<MouseDragEvent>() {
@Override
public void handle(MouseDragEvent event) {
// System.out.println("在组件内拖动,次数:" + (++dragTime) );
}
});
拖拽检测(每次按下鼠标按键进行拖动,会触发事件,直到松开按键重新按下才会重新监听)
button1.setOnDragDetected(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
// 设置全套拖拽动作,以触发组件内鼠标拖拽事件、鼠标拖拽进入、鼠标拖拽退出、鼠标拖拽释放事件
button1.startFullDrag();
System.out.println("拖拽检测,次数:" + (++dragTime));
}
});
拖拽进入
button1.setOnMouseDragEntered(new EventHandler<MouseDragEvent>() {
@Override
public void handle(MouseDragEvent event) {
System.out.println("拖拽进入");
}
});
拖拽退出
button1.setOnMouseDragExited(new EventHandler<MouseDragEvent>() {
@Override
public void handle(MouseDragEvent event) {
System.out.println("拖拽退出");
}
});
拖拽释放
button1.setOnMouseDragReleased(new EventHandler<MouseDragEvent>() {
@Override
public void handle(MouseDragEvent event) {
System.out.println("拖拽释放");
}
});
证明:在button1上开始拖拽,一直拖拽到button2上,依此触发button1拖拽进入->button1拖拽退出->button2拖拽进入,但只给button1设置了完整拖拽动作
button2.setOnMouseDragEntered(new EventHandler<MouseDragEvent>() {
@Override
public void handle(MouseDragEvent event) {
System.out.println("拖拽进入Button2");
// System.out.println("event.getSource() = " + event.getSource());
// System.out.println("event.getTarget() = " + event.getTarget());
}
});
获取事件对象
// 鼠标在button1上按下按键,拖拽至button2上
button2.setOnMouseDragReleased(new EventHandler<MouseDragEvent>() {
@Override
public void handle(MouseDragEvent event) {
// 手势源
System.out.println("event.getGestureSource() = " + event.getGestureSource());
System.out.println("event.getSource() = " + event.getSource());
System.out.println("event.getTarget() = " + event.getTarget());
}
});
event.getGestureSource() = Button@45bb3769[styleClass=button]'button1'
event.getSource() = Button@65eadf18[styleClass=button]'button2'
event.getTarget() = Text[text="button2", x=0.0, y=0.0, alignment=LEFT, origin=BASELINE, boundsType=LOGICAL_VERTICAL_CENTER, font=Font[name=System Regular, family=System, style=Regular, size=15.0], fontSmoothingType=LCD, fill=0x333333ff]