Tag: mouseevent mousemotionlistener

如何在没有取消选择的情况下单击并拖动某些内容

该程序是一个动画,可以在屏幕上创建汽车和/或卡车图标。 我现在的方式是它无法正常工作。 具体来说,程序没有单击并向右拖动。 如果未选择一个对象,则一旦单击该对象,将显示更大胆以显示它已被选中。 从那里我们希望能够拖动它,程序将重绘鼠标所在的任何地方。 如果图像未被选中,当我点击并拖动它时,它可以正常工作。 我遇到的问题是图像是否已被选中。 如果已经选择了图像,当我将鼠标移动到它并单击它以将其移动到不同的位置而不是移动时,它会被取消选择,因此不会发生移动。 以下是mousePressed和mouseDragged事件的代码。 我认为这就是问题所在,但我不确定是什么导致了这个问题。 addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent event) { mousePoint = event.getPoint(); for (SceneShape s : shapes) { if (s.contains(mousePoint)) s.setSelected(!s.isSelected()); } repaint(); } }); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent event) { Point lastMousePoint = mousePoint; mousePoint = event.getPoint(); for (SceneShape s : shapes) { […]