Dublujące się rysunki na JPanelu

0

Poniższy kawałek kodu zaznacza obszar na którym nastąpiło przeciągnięcie(wciśnięcie, przemieszczenie, zwolnienie przycisku) kursora.
Wszytko byłoby dobrze, ale pogrubiona linijka podczas przeciągania powoduje dublowanie koloru, i w efekcie składowa A z 50 zmienia się na 100.

Co zrobić, żeby przeciągnięcie w prawo działało równie dobrze jak to w lewo?

//x0 jest brane z pozycji(X) kursora w momencie wciśnięcia
public static void mousedragged(java.awt.event.MouseEvent evt){
        JPanel plot = (JPanel) (evt.getComponent());
        Graphics g = plot.getGraphics();
        int xd;
        int tmpx = evt.getX();
        int i=0;
        /*w lewo*/
        if (tmpx < x0) {
            xd = x0 - tmpx;
            x0 = tmpx;
            g.setColor(new Color(255, 255, 0, 50));
            g.fillRect(x0, 0, xd, plot.getHeight() - 1);
        }else{
            /*w prawo*/
            xd=tmpx-x0;
            g.setColor(new Color(255, 255, 0, 50));
            **g.fillRect(x0, 0, xd, plot.getHeight() - 1);**//tu tkwi problem
        }
    }
0

Jak zwykle po zadaniu pytania sam znalazłem odpowiedź.
Wystarczyło pierwszy parametr funkcji

fillRect() 

zmienić tak, żeby się zmieniał w trakcie przeciągania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1