Я создаю простую игру, и я хотел бы перекрасить ее после каждого хода. Итак, после того, как я назову move(), я бы хотел сделать следующее: (кстати, представление представляет собой JComponent, который содержит куски, так как количество элементов изменилось после перемещения, его нужно перекрасить)перекрашивать компоненты в петлю
for(View v : views){
v.repaint();
}
Это не работает. Когда я вызываю repaint()
на один просмотр, он отлично работает. Я пробовал использовать paintImmediately
, и revalidate
, и update
... ничего не работает внутри цикла.
Любые идеи? Заранее спасибо.
EDIT: Я должен добавить, что repaint() вызывается при изменении размера окна, поэтому я знаю, что метод Paint ViewPomponent является действительным и работает. Это просто не вызывается из цикла. Когда отладчик проходит через цикл, он не вводит repaint(), и на экране ничего не происходит.
Там нет ничего плохого с источником, что вы включили. Кажется вероятным, что вам нужно включить больше источника, о котором идет речь. – DwB
Возможный дубликат http://stackoverflow.com/questions/4120528/repaint-in-a-loop – CoolBeans
Я прочитал эту ветку - вот откуда у меня возникла идея попробовать PaintImmediately. Что касается публикации большего количества кода, что я должен публиковать? Метод paintComponent отлично работает (см. Отредактированный вопрос). – dj18