Tra22 Ответов: 0

У меня есть проблема на качели с перетаскиванием для зоны обрезки


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);
    }

0 Ответов