Этот вопрос закрыт для ответов, так как повторяет вопрос Кто поможет с двумя вопросами по java?

Кто может помочь с моим paint на Java?

Ребят в общем на занятиях написали paint и теперь мне нужна помощь. Когда я рисую квадрат мне нужно, что бы он отображался перед тем, как я его нарисовал, но у меня возникла проблема. Кто может помочь?
Вот вся проблема в видео: https://youtu.be/iVjPqU1H_2A.

Код:
case 5:
                        if (endX != 0 && endY != 0){
                            g2.setColor(Color.white);
                            g2.drawRect(startX, startY, endX, endY);
                        }
                        g2.setColor(mainColor);
                        if (xN < e.getX() && yN < e.getY()) {
                            g2.drawRect(xN, yN, e.getX() - xN, e.getY() - yN);
                            endX = e.getX()-xN;
                            endY = e.getY()-yN;
                            startX = xN;
                            startY = yN;
                        }
                        else if (xN > e.getX() && yN <e.getY()) {
                            g2.drawRect(e.getX(), yN, xN-e.getX(), e.getY() - yN);
                            endX = xN - e.getX();
                            endY = e.getY()-yN;
                            startX = e.getX();
                            startY = yN;
                        }
                        else if(xN < e.getX() && yN > e.getY()) {
                            g2.drawRect(xN, e.getY(), e.getX() - xN, yN - e.getY());
                            endX = e.getX()-xN;
                            endY = yN - e.getY();
                            startX = xN;
                            startY = e.getY();
                        }
                        else {
                            g2.drawRect(e.getX(), e.getY(), xN - e.getX(), yN - e.getY());
                            endX = xN - e.getX();
                            endY = yN - e.getY();
                            startX = e.getX();
                            startY = e.getY();
                        }
                        break;

Я понимаю, что ошибка в строчке с изменением цвета на белый (g2.setColor(Color.white)) и я хочу узнать, как это изменить, чтобы можно было понимать, что я рисую.
  • Вопрос задан
  • 105 просмотров
Ответы на вопрос 2
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Тупой способ:
1) перед началом рисования полностью копируете весь холст без новой фигуры. Т.е. в момент тыка мышкой.
...
2) Вставляете на основной холст чистую копию без фигуры
3) Рисуете прямоугольник
g2.setColor(Color.white);
g2.drawRect(startX, startY, endX, endY);


По правильному, за которое вам не оторвут руки.
Перед рисованием фигуры поверх холста делаете прозрачный холст и рисуете уже на нем. Как только нарисовали сводим полученное в результат.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы