У меня есть проблема на качели с перетаскиванием для зоны обрезки
Graphics2D g3=(Graphics2D)image.getGraphics().create(); super.paintComponent(g3); g3.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g3.setStroke(new BasicStroke(2)); if(Convert.Crop==true) { for (Shape s : shapes) { g3.setPaint(Color.BLACK); // g3.draw(s); g3.drawRect(startDrag.x,startDrag.y,endDrag.x,endDrag.y); g3.setPaint(new Color(255,255,0,50)); // g3.fill(s); g3.fillRect(startDrag.x,startDrag.y,endDrag.x,endDrag.y); } if (startDrag != null && endDrag != null) { g3.setPaint(Color.BLACK); Shape r = makeRectangle(startDrag.x, startDrag.y, endDrag.x, endDrag.y); g3.draw(r); }
*Примечание: вот мой код на
paintcomponent(Graphics g)
и когда я перетаскиваю мышь для обрезки, это не ясная старая линия прямоугольника.Я хочу перетащить и получить только последний прямоугольник.Что я уже пробовал:
Я пытаюсь использовать его рисовать на панели, он работает с последним прямоугольником, как мой код ниже.
Graphics2D g3=(Graphics2D)g; super.paintComponent(g3); g3.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g3.setStroke(new BasicStroke(2)); if(Convert.Crop==true) { for (Shape s : shapes) { g3.setPaint(Color.BLACK); // g3.draw(s); g3.drawRect(startDrag.x,startDrag.y,endDrag.x,endDrag.y); g3.setPaint(new Color(255,255,0,50)); // g3.fill(s); g3.fillRect(startDrag.x,startDrag.y,endDrag.x,endDrag.y); } if (startDrag != null && endDrag != null) { g3.setPaint(Color.BLACK); Shape r = makeRectangle(startDrag.x, startDrag.y, endDrag.x, endDrag.y); g3.draw(r); }