【问题标题】:mouse pressed->drag->released. in java鼠标按下->拖动->释放。在java中
【发布时间】:2011-11-17 17:31:36
【问题描述】:
对不起:
我只是不知道如何链接这些连续的操作?
鼠标按下然后拖动然后松开。如果用户不执行此操作,则某些操作将不会发生...
我应该添加代码,因为已经按下来区分吗?
常量 MOUSE_MOVED 不起作用,因为 Eclipse 告诉我它不知道,尽管我在 mouse event api 中找到了参数
我不知道发生了什么...请帮忙!
【问题讨论】:
标签:
java
swing
mouse
mouseevent
drag-and-drop
【解决方案2】:
下面是一个简单的类,封装了拖拽检测:
public abstract static class MouseDragListener {
java.awt.Component component;
MouseEvent dragStart;
public MouseDragListener(java.awt.Component component) {
super();
this.component = component;
component.addMouseMotionListener(new MouseAdapter() {
public void mouseMoved(MouseEvent e) {
dragStart = null;
}
public void mouseDragged(MouseEvent e) {
if (dragStart == null)
dragStart = e;
}
});
component.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (dragStart != null) {
dragReleased(dragStart, e);
}
}
});
}
然后使用:
new MouseDragListener(center){
void dragReleased(MouseEvent start,MouseEvent end){
// do something ...
}
}