Canvas
Кто может объяснить, какая связь между методами KeyPressed(int) и paint(Graphics) класса Canvas?
У меня вот какая проблема: При событии нажатия на клавишу, в методе KeyPressed(int), я вызываю перересовку одной части экрана, и сразу же перерисовку другой части экрана. На практике выходит, что перерисовывается только вторая часть. Долго ломал голову, пока не прошел программу отладчиком. Выходит вот какая странная штуковина, если в методе KeyPressed(int) вызвать пару раз метод repaint(); То на самом деле метод paint(Graphics) вызывается только один раз, по завершению метода KeyPressed(int). Поэтому у меня на экране и отрисовывались только последние изменения. Так что же происходит внутри этого Canvasa, почему paint вызывается только после выхода из KeyPressed и как можно/можно ли это исправить?
|