gpt4 book ai didi

java - 将逻辑集成到paintComponent中

转载 作者:行者123 更新时间:2023-12-02 05:26:56 24 4
gpt4 key购买 nike

我目前正在学习 Swing,但遇到了心理障碍。我知道当我想绘制 JPanel 时,我需要调用 PaintComponent 方法。我读过一些地方,逻辑不应该位于你的paintComponent block 中。如果我想要一个计时器来确定何时绘制某些内容,我是否不必从另一个类的另一个方法调用paintComponent并创建该类的一个实例,该实例也扩展了paintComponent中的JPanel?

我认为我要避免的是以下内容......

public void paintComponent(Graphics g)
{


super.paintComponent(g);
g.drawImage(blah,blah,blah);

if(timesUP==true){
paintSomethingElse(g);

}
repaint();
}

相反,我觉得我应该为 if 语句的逻辑创建一个完全不同的方法,并以某种方式从单独的方法中进行绘制。

我不明白什么?

这个问题已经得到具体答复了吗?我无法找到一个答案来帮助我真正理解如何有效地分离两者,从而允许在同一个 JPanel 上绘制多个图形。

最佳答案

这要看情况。如果逻辑与实际的绘制过程相关,那么您没有理由不将其放入 paintComponent 方法中。

您想要避免的是将逻辑放入 paintComponent 中,以更改绘制过程的状态,因为 paintComponent 可能会因多种原因而被调用,其中许多原因您无法控制。

paintComponent 方法应该绘制组件的当前状态,仅此而已,它不应该参与更改或更新该状态(这实际上可能导致无限重绘循环,这将消耗您的资源) CPU 周期)

关于java - 将逻辑集成到paintComponent中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25928338/

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