Я пытаюсь создать Java-апплет, который позволит мне нарисовать структуру данных графа в холсте. Я сделаю это, щелкнув, где я хочу создавать узлы, и щелкнув узлы, чтобы их соединить. Проблема в том, что я не могу заставить метод paint()
правильно вести себя. Добавить новые узлы в графе (и квадраты на холсте) внутри метода mousePressed(MouseEvent e)
с использованием,Java 2D Graphics Rectangles
Graphics g = this.getGraphics();
g.setColor(Color.blue);
g.fillRect(e.getX(), e.gety(), 40, 40);
Все работает отлично, пока я не изменять размер окна, а затем все заполненные прямоугольники исчезают. Я переопределил метод рисования только пустым методом, но то же самое происходит. Я не могу добавить команды fillRect внутри paint(), потому что я не знаю, какие существуют прямоугольники, пока пользователь не взаимодействует с ним с помощью мыши.
Как использовать g.fillRect()
в методах прослушивания мыши и заставить их придерживаться?
Это казалось самым простым методом, я создал новый BufferedImage, а затем нарисовал все свои фигуры на нем и просто сделал метод рисования рисуем изображение. Благодаря! – PherricOxide
Нет проблем, хотя вам, возможно, придется полностью перекрасить, в конце концов вспомнить совет Кила. (также, не забудьте проголосовать и «принять» ответы, которые вам нравятся. Мне нужны мои точки кармы. :) – Gunslinger47
В этом конкретном случае сохранение данных, вероятно, будет гораздо лучше, чем буферизованное изображение. Однако +1 для получения обеих крайностей. –