java mousedragged

0

Hej, mam problem z odliczaniem (w moim przypadku -.-' ) śmieci przy przeciąganiu ich na kosz. Wątek polega na przeciągnięciu śmiecia na kosz i odjęciu 1 od ilości pozostałych śmieci. Z niewiadomych przyczyn odejmuje mi inne wartości (min. 1).
'''
public void mouseDragged(MouseEvent e) {
Object zrodlo = e.getSource();
if (zrodlo == ok.sm)
{
a=e.getLocationOnScreen().x - dX;
b=e.getLocationOnScreen().y - dY;
if(a<1)
a=0;
if(b<1)
b=0;
if(a>1250)
a=1250;
if(b>690)
b=690;

        ok.sm.setLocation(a,b );
        dX = e.getLocationOnScreen().x - ok.sm.getX();
        dY = e.getLocationOnScreen().y - ok.sm.getY();
        
        
        if(a>409 && a<611 && b>499 && b<751)
        {
            ok.sm.setVisible(false);
            st.smieci-=1;
            ok.sm.removeMouseMotionListener(this);
        }           
    } 

'''
ok.sm jest to jlabel ze śmieciem - obrazkiem
st.smieci jest to stan smieci
cyfry w if to położenie kosza

0

Już nie ważne ;P
Ale jak by ktoś miał taki problem to wynikało to z innego błędu: zadeklarowania w dwóch miejscach ok.sm.addMouseMotionListener(this);
W dodatku u mnie to się zapętlało więc dany JLabel miał po kilka nałożonych MouseMotionListener xD
Ale człowiek całe życie się uczy...

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