gpt4 book ai didi

java - 在 java repaint() 中调用 2 个函数,然后调用 func1(),但首先调用 func1(),然后调用 repaint()。为什么?

转载 作者:行者123 更新时间:2023-12-01 15:49:05 28 4
gpt4 key购买 nike

我在java中使用2个类class1class2,它们都位于不同的包中。 class2 中定义了一个 paintComponent() 和一个 test()。我按以下顺序从 class1 调用这些方法..

objclass2.repaint()
objclass2.test()
objclass2.repaint()

但我不知道为什么首先执行test()。接下来执行 repaint() ..加上第二个 repaint() 没有全部执行..为什么会这样?

编辑

for(int i=0;i<170;i++)
{
az.animate(i);
try {
Thread.sleep(160);
} catch (InterruptedException ee) {
ee.printStackTrace();
}
}

动画方法():-

pd.setCurrentAltitudeScaleValue(val);
azl.update();
azl.repaint();

并且在 azl.paintComponent() 中,我正在绘制一些东西。每次 for 循环执行时都会调用 animate 方法,但它不会调用再次repaint()..意味着repaint方法仅被调用一次,尽管animate()被一次又一次调用..

最佳答案

我假设您的意思是 PaintComponent() 正在表现出您提到的行为。请记住:

  • 当您调用 repaint() 时,基本上会标记组件说“该组件需要在事件线程的下一个方便的时刻重新绘制”
  • 对paintComponent()的调用可以合并。

如果您的程序设计确实依赖于调用paintCompoent()的顺序,那么我建议您选择不同的设计。

关于java - 在 java repaint() 中调用 2 个函数,然后调用 func1(),但首先调用 func1(),然后调用 repaint()。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6488707/

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