gpt4 book ai didi

java - 如何在 Java 中更新此自定义绘制?

转载 作者:行者123 更新时间:2023-12-01 22:33:39 26 4
gpt4 key购买 nike

我有一个基于 GUI 的实时游戏,并使用 JPanel 和 JFrame。我目前有一个重写的paintComponent,它根据代码中的某些条件进行绘制。例如:

protected void paintComponent(Graphics gfx)
{
super.paintComponent(gfx);
gfx.setFont(new Font("default", Font.BOLD, 18));

if (one)
{
//do something
}

else
{
// do something else
}
}

根据条件,这会起作用一次。我已经实现了一个鼠标监听器,我想将其用于语句,这样如果有人单击某个部分,它就会显示其他内容。我想返回并再次运行paintComponent,以便它在旧组件之上进行绘制。 paintComponent() 是否已循环?如果没有,如何在循环中运行该方法?

最佳答案

您可以通过调用repaint()来重新绘制。您可以通过创建一个计时器来重新绘制它来循环执行此操作,或者在需要更新时调用它(如果您的代码足够简单,可能会更好)

编辑:关于何时使用计时器:

计时器不是必需的。我曾经在游戏中使用过它,因为我正在自定义绘制整个窗口,并且有数十个不断变化的东西需要绘制,并且每次调用 render() 都不会让我的 CPU 满意。不过,对于简单的事情,最好仅在发生更改时才调用 repaint(),因为如果没有任何更改,您就会浪费大量时间来重新绘制它。

关于java - 如何在 Java 中更新此自定义绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27198733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com