Вызов 2 функций в java repaint () и затем func1 (), но сначала вызывается func1 (), а затем repaint ().Зачем? - PullRequest
0 голосов
/ 27 июня 2011

Я использую 2 класса class1 и class2 в Java, оба в разных пакетах.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();
        }
    }

animatemethod (): -

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

и в azl.paintComponent() я рисую несколько вещей. Метод animate вызывается каждый раз, когда выполняется цикл for, но он не вызывает repaint()снова .. означает, что repaint метод вызывается только один раз, хотя animate() вызывается снова и снова ..

1 Ответ

1 голос
/ 27 июня 2011

Полагаю, вы имеете в виду, что paintComponent () демонстрирует поведение, которое вы упомянули.Имейте в виду, что:

  • , когда вы вызываете repaint (), это в основном помечает компонент, чтобы сказать, что «этот компонент нуждается в перерисовке в следующий удобный момент из потока событий»
  • вызовы paintComponent () могут быть объединены.

Если дизайн вашей программы действительно зависит от порядка, в котором вызывается paintCompoent (), то я бы предложил вам выбрать другой дизайн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...