я читал через это:Что вызывает неявный вызов paint() для компонента в AWT?
http://www.oracle.com/technetwork/java/painting-140037.html#triggers
И он упоминает следующее:
В операции покраски система срабатывает, система запрашивает компонент для отображения его содержимого, как правило, для одна из следующих причин: причины:
- Компонент в первую очередь отображается на экране ееп.
- Компонент изменен.
- У компонента есть повреждения, которые необходимо отремонтировать. (Для примера , что-то, что ранее затушевало компонент, переместилось, и ранее закрытая часть компонента стала выставлена).
Первый пункт довольно очевиден. Тем не менее, вторая и третья точки оставляют желать лучшего при определении того, нужно ли мне переписывать(). Почти любой пример, который я вижу, вызывает перерисовку() всякий раз, когда графические свойства компонента меняются вообще. Однако есть некоторые признаки того, что если я изменю некоторые свойства, мне не нужно будет переписывать(). Какими могут быть эти свойства?
Что я имел в виду, это обрезка на графике, нарисованной на JPanel. Так что не сам JPanel. –
@BrianReindel, все еще не понимаю. Обрезание выполняется, когда компонент перекрашивается. Это легко проверить. Получаете ли вы желаемые результаты? Если вы этого не сделаете, отправьте сообщение «SSCCE». – camickr
Я думаю, что пример отсечения был плохим. В основном меня беспокоит, когда мне следует переименовать(), и когда AWT собирается называть paint() для меня. Лучше спросить, используя вышеописанные пункты, что будет представлять собой «изменение размера» для компонента? –