PDA

View Full Version : انجام یک عمل خاص بعد از درگ کردن عکس به سمت چپ یا راست



golsa_6
جمعه 26 خرداد 1391, 20:24 عصر
سلام دوستان

چطور میتوانم برنامه ای بنویسم که با درگ کردن یک عکس که در jpanel کشیده شده، عمل خاصی انجام شود؟ (مثلا عکس بعدی موجود در دایرکتوری را نشان دهد)

آیا listener خاصی برای این کار هست؟ (من که ندیدم...)

spiderman200700
جمعه 26 خرداد 1391, 23:14 عصر
سلام
فکر نمیکنم listenere خاصی داشته باشه.
باید با توجه به مقدار کشیده شدن کاری رو که میخوای انجام بدی.
مثلا توی متد mouseDragged هردفعه بیای چک کنی که اگه مقدار کشیده شدن بزرگتر از 1/4 طول عکس بود، عمل دلخواه رو انجام بده.

golsa_6
شنبه 27 خرداد 1391, 15:29 عصر
با تشکر.

چطور میتونم مقدار کشیده شدن رو محاسبه کنم؟

spiderman200700
شنبه 27 خرداد 1391, 19:51 عصر
باید نقطه ی X انتهای درگ رو از نقطه ی X ابتدای درگ کم کنی. اینطوری مقدار کشیده شدن به دست میاد.

اینم یه مثال:

addMouseMotionListener(new MouseMotionAdapter() {

@Override
public void mouseDragged(MouseEvent e) {

if (!isdrag) {
startdrag = e.getPoint().x;
isdrag = true;
}
}
});


addMouseListener(new MouseAdapter() {

@Override
public void mouseReleased(MouseEvent e) {
dragged = e.getPoint().x -startdrag;
if (dragged > (1 / 4) * imagewidth) {
//عمل دلخواه
}
isdrag = false;
}
});


باید متغییر های isdrag ، dragged ، startdrag رو سراسری تعریف کنید.
مقدار اولیه ی isdrag باید false باشه. dragged و startdrag هم باید در ابتدا صفر باشن.

*این کد برای درگ کردن از سمت چپ به سمت راست هست. برای انجام عکس این عمل باید کدها رو خودتون تغییر بدید.