Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java GUI
Войти
Регистрация
Восстановить пароль
 
КоляНиколай
0 / 0 / 0
Регистрация: 28.02.2015
Сообщений: 10
1

Рисование в JFrame

23.02.2016, 16:29. Просмотров 445. Ответов 4
Метки нет (Все метки)

Передо мной стоит задача: написать прогу, в которой можно рисовать пpямoугoльники по двум кликам. первый клик - координаты левого верхнего угла пpямоугольника, второй клик - координаты нижнего правого. Отсюда посчитаем высоту и ширину, вопрос заключается не в этом.

когда мы используем метод paint, то экран постоянно обновляется и когда рисуем новый пpямоугольник, то предыдущий пропадает. Мы же не можем запомнить координаты каждого пpямоугольника, чтобы их все перерисовывать каждый раз.

Как убрать перерисовку?
Может другой метод использовать?

пробовал рисовать непосредственно в методе Paint и пробовал рисовать в методе mouseClicked - обработчике события клика
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2016, 16:29
Ответы с готовыми решениями:

Рисование на JFrame
Нет идей, как сделать чтоб точка или какой-то курсор чертил линии по заданным...

Рисование на jframe
Добрый денёк. В один момент надоело решать задачки джавы "а-ля хабрахабр",...

Прервать рисование в Jframe
Необходимо по нажатию кнопки останавливать процесс рисования фрактала. Для...

Рисование jframe & jpanel
Доброго времени суток. Я решил GUI начать изучать, и у меня куча вопросов. 1)...

Проходил ли кто-то видео-курс techpro? Как у них получилось JFrame в JFrame добавить
Проходил ли кто-то видео-курс techpro? Как у них получилось JFrame в JFrame...

4
megastriker
51 / 51 / 39
Регистрация: 05.12.2010
Сообщений: 261
24.02.2016, 10:57 2
Покажите код, мы не можем гадать на картах, что там у вас, не видя кода.
Вообще, советую вызывать перерисовку в mouseClicked, и там же сохранять координаты нажатой мышки, как:

Java
1
2
3
4
5
6
7
            static ArrayList<Point> points = new ArrayList<>();
            ...
            @Override
            public void mouseClicked(MouseEvent e) {
                points.add(new Point(e.getLocationOnScreen().x,
                                     e.getLocationOnScreen().y));
            }
0
iskrot
2 / 2 / 3
Регистрация: 22.02.2016
Сообщений: 11
24.02.2016, 11:11 3
КоляНиколай, нередко для этого отрисовка идет в буфере, а не на самой панели фрейма. В качестве буфера используется BufferedImage. А в методе paint отрисовываем BufferedImage
0
kushok
123 / 110 / 56
Регистрация: 05.12.2012
Сообщений: 463
Завершенные тесты: 1
24.02.2016, 13:36 4
По поводу убирание перерисовки:
Java
1
2
3
4
@Override
public void update(Graphics g){
    paint(g);
}
Вариант с BufferedImage тоже подходящий. А по мне - лучше комбинировать.
0
gen30
0 / 0 / 1
Регистрация: 07.04.2014
Сообщений: 10
03.04.2017, 07:24 5
Если убрать перерисовку, то при изменении состояния окошка будет затерто изображение, поэтому его нужно перерисовывать..Запоминать в буфере и каждый раз при вызове перерисовывать...BufferedImage как раз для отрисовки и запоминания рисунка...
0
03.04.2017, 07:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2017, 07:24

Как закрыть один JFrame и открыть новый JFrame?
привет подскажите как реализовать. есть отдельный класс с выпадающим меню(там...

Как сделать Jframe внутри другого JFrame
Доброго времени суток джентльмены и леди. Как сделать так, что бы внутри...

JFrame и БД
Доброго времени суток. И так, такая проблема. Есть код который Выводит базу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru