Java Swing:每毫秒更新一次图形?

Java Swing:每毫秒更新一次图形?,java,swing,graphics,Java,Swing,Graphics,我用基本GUI创建了一个小画板程序。我使用了paintComponent方法。我想每毫秒更新一次正在绘制的图形。这样,用户可以在释放鼠标单击之前看到他们将要绘制的内容。 例如,如果我正在绘制一个矩形,我希望在绘制它时看到该矩形。 如果您不明白我到底在说什么,请打开MS Paint并单击矩形工具。画一个矩形。请注意它是如何持续更新的,而不是在释放鼠标后。 我想一定有办法让它每毫秒更新一次我的图形。做这件事最好的方法是什么?抱歉,如果这是一个简单的问题,我是新来的摇摆 你不是每毫秒更新一次 使用Mo

我用基本GUI创建了一个小画板程序。我使用了paintComponent方法。我想每毫秒更新一次正在绘制的图形。这样,用户可以在释放鼠标单击之前看到他们将要绘制的内容。 例如,如果我正在绘制一个矩形,我希望在绘制它时看到该矩形。 如果您不明白我到底在说什么,请打开MS Paint并单击矩形工具。画一个矩形。请注意它是如何持续更新的,而不是在释放鼠标后。
我想一定有办法让它每毫秒更新一次我的图形。做这件事最好的方法是什么?抱歉,如果这是一个简单的问题,我是新来的摇摆

你不是每毫秒更新一次

使用
MouseMotionListener
,每次生成
mouseDragged
事件时都会更新,以重新绘制矩形

检查两种方法如何做到这一点

示例显示了如何通过以下任一方式绘制多个矩形:

  • 将对象添加到列表中,然后在每次重新绘制组件时重新绘制每个对象
  • 直接在BuffereImage上绘制和仅绘制BuffereImage

  • 你不是每毫秒更新一次

    使用
    MouseMotionListener
    ,每次生成
    mouseDragged
    事件时都会更新,以重新绘制矩形

    检查两种方法如何做到这一点

    示例显示了如何通过以下任一方式绘制多个矩形:

  • 将对象添加到列表中,然后在每次重新绘制组件时重新绘制每个对象
  • 直接在BuffereImage上绘制和仅绘制BuffereImage

  • 非常感谢你!!我以为我想得太多了@pmcg521,很高兴它有帮助。不要忘记点击复选标记“接受”答案,这样人们就知道问题已经解决了。另外,别忘了在其他问题中“接受”答案。你为什么问这个问题?我刚刚注意到我两周前给了你这个答案。如果我们能抽出时间阅读并回答您的问题。然后您可以花时间阅读我们给您的答案,包括我们提供的链接中的信息。@pmcg521,您问了一个关于在同一面板上绘制多个圆的后续问题。您获得了一个指向一个工作示例的链接,该示例演示了如何执行该操作。它还演示了如何在拖动鼠标时绘制圆。关键是你没有下载代码并尝试它<代码>我没有时间-我只需要花时间回答这个问题,即使你已经得到了答案。你认为我们为什么有时间???为什么你的时间比我们的重要。阅读问题的其他人花了多少时间???你计划浪费多少人的时间?
    而且你不必回答任何问题
    -同意,但当人们回答问题时,你是被期待的。阅读答案并花时间理解它们。你懒散地不读答案,这并不是你重新提出问题和浪费阅读问题的人时间的借口。其他人不知道这个问题之前已经得到了回答,所以会尽力帮助他们。这是一种浪费,或者说是浪费他们的时间,而这些时间是用来回答真正需要帮助的人提出的其他问题的。非常感谢!!我以为我想得太多了@pmcg521,很高兴它有帮助。不要忘记点击复选标记“接受”答案,这样人们就知道问题已经解决了。另外,别忘了在其他问题中“接受”答案。你为什么问这个问题?我刚刚注意到我两周前给了你这个答案。如果我们能抽出时间阅读并回答您的问题。然后您可以花时间阅读我们给您的答案,包括我们提供的链接中的信息。@pmcg521,您问了一个关于在同一面板上绘制多个圆的后续问题。您获得了一个指向一个工作示例的链接,该示例演示了如何执行该操作。它还演示了如何在拖动鼠标时绘制圆。关键是你没有下载代码并尝试它<代码>我没有时间-我只需要花时间回答这个问题,即使你已经得到了答案。你认为我们为什么有时间???为什么你的时间比我们的重要。阅读问题的其他人花了多少时间???你计划浪费多少人的时间?
    而且你不必回答任何问题
    -同意,但当人们回答问题时,你是被期待的。阅读答案并花时间理解它们。你懒散地不读答案,这并不是你重新提出问题和浪费阅读问题的人时间的借口。其他人不知道这个问题之前已经得到了回答,所以会尽力帮助他们。这是一种浪费,或者说是浪费他们的时间,而这些时间应该花在回答真正需要帮助的人提出的其他问题上。