Java — восстановление JFrame/рисования

Используя Java, я создаю новый кадр JFrame и загружаю в него изображение вместе с некоторыми кнопками:

введите здесь описание изображения

Затем я нажимаю «Классифицировать», чтобы определить основную интересующую область, и это дает изображение, подобное следующему:

введите здесь описание изображения

Однако, когда я снова нажимаю «Классифицировать», первые рисунки (зеленые и красные круги) остаются на изображении, и они затем классифицируются. Как я могу сделать так, чтобы, когда я нажимаю «Классифицировать» во второй/третий/n-й раз, изображение сбрасывалось (все рисунки/круги удалялись) до того, как оно было до нажатия «Классифицировать»?

У меня есть «Сброс изображения» JButton, но я еще не реализовал его (отсюда и мой вопрос!).

Большое спасибо.


person Mus    schedule 06.03.2012    source источник
comment
Чтобы быстрее получить помощь, опубликуйте SSCCE.   -  person Andrew Thompson    schedule 07.03.2012
comment
Это общий запрос, поэтому SSCCE не требуется для этого типа вопроса; кроме того, помощь была оказана очень быстро (примерно в течение пяти минут после публикации). Все равно спасибо.   -  person Mus    schedule 07.03.2012


Ответы (1)


Помимо эффективности использования памяти, вы можете сохранить начальное состояние графики в файле BufferedImage. Нажав Классифицировать, вместо этого нарисуйте копию объекта Graphics этого изображения, а затем закрасьте им область.

А после нажатия Сбросить изображение просто нарисуйте изображение прямо в этой области.

person mre    schedule 06.03.2012
comment
Спасибо за ваши мысли. Могу ли я попросить пример кода, поскольку я не могу понять это? - person Mus; 06.03.2012
comment
@Mick, почти все должно быть задокументировано в BufferedImage API - person mre; 06.03.2012