【问题标题】:Swing: Update Graphics every millisecond?Swing:每毫秒更新一次图形?
【发布时间】:2016-04-08 23:03:35
【问题描述】:

我创建了一个带有基本 GUI 的小画板程序。我使用了paintComponent 方法。我想每毫秒更新一次绘制的图形。这样,用户可以在释放鼠标点击之前看到他们将要绘制的内容。 例如,如果我正在绘制一个矩形,我希望看到矩形同时我正在绘制它。 如果您对我到底在说什么感到困惑,请打开 MS Paint 并单击矩形工具。画一个矩形。请注意它是如何持续更新的,而不是在您释放鼠标之后。 我认为必须有某种方法可以让它每毫秒更新一次我的图形。这样做的最佳方法是什么?抱歉,如果这是一个简单的问题,我是 Swing 新手! :)

【问题讨论】:

    标签: java swing graphics


    【解决方案1】:

    你不会每毫秒更新一次。

    您使用MouseMotionListener 并且每次生成mouseDragged 事件以重绘矩形时更新。

    查看Custom Painting Approaches 了解如何执行此操作的两种方法。

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

    1. 将对象添加到列表中,然后在每次重新绘制组件时重新绘制每个对象
    2. 直接在 BufferedImage 上绘制,然后只绘制 BufferedImage。

    【讨论】:

    • 非常感谢!!我以为我想多了。 :)
    • @pmcg521,很高兴它有帮助。不要忘记通过单击复选标记“接受”答案,以便人们知道问题已经解决。也不要忘记“接受”其他问题的答案。
    • 你为什么问这个问题?我刚刚注意到我在 2 周前给了你这个答案。如果我们可以花时间阅读并回答您的问题。然后,您可以花时间阅读我们为您提供的答案,包括我们提供的链接中的信息。
    • @pmcg521,您提出了一个关于在同一面板上绘制多个圆圈的后续问题。您获得了一个工作示例的链接,该示例展示了如何做到这一点。它还展示了如何在拖动鼠标时绘制圆圈。所以关键是你没有下载代码并尝试它。 I don't have time - 我只需要花时间回答这个问题,即使你已经有了答案。为什么你认为我们有时间???为什么你的时间比我们的重要??? .阅读问题的其他人花费的时间呢???你打算浪费多少人的时间?
    • And you didn't HAVE to answer any question - 同意,但是当人们确实回答问题时,您会被期望。阅读答案并花时间理解它们。您不阅读答案的懒惰不能成为重新发布问题并浪费其他阅读问题的人的时间的借口。其他人不知道该问题以前已得到解答,因此会尽力提供帮助。这是浪费或浪费他们的时间,最好花在回答真正需要帮助的人的其他问题上。
    猜你喜欢
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多