Java 两点之间的动态线,单击,移动鼠标,然后单击
我必须用Java划一条线。我单击一个点,然后释放鼠标键,移动鼠标(线的末端应该是鼠标光标所在的位置(动态预览)),然后再次单击鼠标键以生成线 我在这里看到了各种各样的问题,但大多数问题都是关于按住鼠标键并拖动鼠标Java 两点之间的动态线,单击,移动鼠标,然后单击,java,mouselistener,Java,Mouselistener,我必须用Java划一条线。我单击一个点,然后释放鼠标键,移动鼠标(线的末端应该是鼠标光标所在的位置(动态预览)),然后再次单击鼠标键以生成线 我在这里看到了各种各样的问题,但大多数问题都是关于按住鼠标键并拖动鼠标 我的问题是,如何使用上述方法动态地画一条线。我担心重新粉刷。我之前有代码,它在我移动鼠标时画出了所有的线条。有没有一种方法可以预览一下 您需要创建一个同时实现MouseEventListener和MouseMotionListener的应用程序。使用MouseEventListener
我的问题是,如何使用上述方法动态地画一条线。我担心重新粉刷。我之前有代码,它在我移动鼠标时画出了所有的线条。有没有一种方法可以预览一下 您需要创建一个同时实现
MouseEventListener
和MouseMotionListener
的应用程序。使用MouseEventListener
方法mouseClicked
检查鼠标是否已单击,然后使用MouseMotionListener
方法MouseMoved
将行的另一端更新到鼠标的位置。最后,再次使用MouseEventListener
来确定行的结束位置
我希望这有帮助
看看:
和 您的帖子中缺少了很多信息,因此很难提供准确的解决方案,但这里是总体思路。假设您需要一个透明的JComponent来接收鼠标事件并绘制行预览,那么代码将如下所示
public class MyLinePreviewComponent extends JComponent {
Point sourcePoint;
Point destinationPoint;
pubic MyLinePreviewComponent() {
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (sourcePoint == null)
sourcePoint = e.getPoint();
else
sourcePoint = null;
repaint();
}
});
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
if (sourcePoint != null)
targetPoint = e.getPoint();
repaint();
}
});
}
public void paintComponent(Graphics g) {
if (sourcePoint != null && destinationPoint != null) {
g.setColor(Color.red);
g.drawLine(sourcePoint.x, sourcePoint.y, destinationPoint.x, destinationPoint.y);
}
}
}
请注意,我没有运行此代码
如果必须将线条预览功能添加到现有组件中,则在绘制线条之前,必须在paintComponent()中重新绘制常规内容。是否尝试过?您是否有示例代码可供建议?我们真的错过太多了,无法帮助你。你在画什么?“线条预览”后面是否还有其他绘制内容?
。但大多数都是按住鼠标按钮并拖动鼠标。
-因此,请根据您的需要修改这些示例。代码将非常相似。按下鼠标将保存起始点。您可以使用mouseMoved来拖动预览线,而不是使用mouseDragged。然后在MouseRelease中保存端点。当然,你需要一些额外的逻辑来确保你已经有了起点。