对不起:
我只是不知道如何连接这些连续的操作?
鼠标按下然后拖动然后释放。如果用户不执行此操作,则不会执行某些操作...
我应该添加代码,因为已经按下来区分它吗?
常量MOUSE_MOVED不起作用,因为虽然我在mouse event api
中找到参数,但Eclipse告诉我它不知道它我不知道发生了什么......请帮忙!
答案 0 :(得分:6)
使用MouseInputListener子类实现MouseInputAdapter并处理mousePressed,mouseDragged和mouseReleased事件。
请查看此tutorial示例。
答案 1 :(得分:0)
这是一个封装拖动检测的简单类:
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 ...
}
}