View Full Version : اسکرول کردن اتوماتیک JScrollPane
spiderman200700
چهارشنبه 23 شهریور 1390, 02:17 صبح
سلام به همگی.
یه مشکل واسم پیش اومده که نمیتونم حلش کنم.اگه میشه کمکم کنید.
فرض کنید یه JList رو add میکنیم به یه JScrollPane ،و JScrollPane رو JFrame اضافه میکنیم.
مشکل من اینه که وقتی تعداد سطر های JList من از ارتفاع JScrollPane بزرگتر میشه(یعنی زمانی که JList من اونقدر بزرگ شده که باید اسکرول کرد تا همه ی قسمت هاشو بشه دید) و یه سطر که در قسمت پایین JList قرار داره و دیده نمیشه رو ،انتخاب میکنم،JScrollPane به طور خودکار اسکرول نمیشه تا سطر انتخاب شده رو بیاره بالا تا دیده بشه.
سوال اینه که در همچین مواقعی چطور میشه عمل اسکرول کردن JScrollPane رو کنترول کردن و ScrollBar رو هر چقدر که احتیاجه بالا پایین کرد تا سطر انتخاب شده که در پایین قرار داره و دیده نمیشه به بالا ییاد تا جایی که قابل مشاهده بشه؟
با تشکر.
saeedIRHA
چهارشنبه 23 شهریور 1390, 03:00 صبح
با مطالعه دقیق این لینک اگر به جواب نرسیدی در خدمتیم:
http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html
spiderman200700
چهارشنبه 23 شهریور 1390, 13:28 عصر
با مطالعه دقیق این لینک اگر به جواب نرسیدی در خدمتیم:
http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html
لینک رو خوندم.ولی جواب سوالم رو نتونستم پیدا کنم.
میشه شخصا راهنماییم کنید.
ممنون از شما.
spiderman200700
جمعه 25 شهریور 1390, 16:31 عصر
کسی نیست در این ضمینه کمکم کنه.
جناب saeedIRHA ،من هنوز منتظر جواب شما هستم.
لطفا کمک کنید.
ممنون.
saeedIRHA
شنبه 26 شهریور 1390, 02:55 صبح
دقیقا متوجه نشدم چی میخواهی ؟؟
spiderman200700
شنبه 26 شهریور 1390, 11:39 صبح
دقیقا متوجه نشدم چی میخواهی ؟؟
میخوام ScrollPane رو هر چقدر که دلم میخواد اسکرول کنم.البته با استفاده از کد نویسی.
مثالا وقتی ScrollPane هنوز اسکرول نشده.(مثل این):
http://1.tsvr.comze.com/images/e663a72b27bd.jpg
میخوام وقتی متد
List.setSelectedIndex(21);
رو برای JList صدا میزنم و سطر 22 انتخاب میشه،ScrollPane هم به صورت اتوماتیک بره پایین تا سطر 22 دیده بشه.مثل این:
http://1.tsvr.comze.com/images/55cb2657aaa5.jpg
چطور میشه کاری کرد که در این جور مواقع ،ScrollPane خودش به صورت خودکار اسکرول بشه؟
ممنون.
saeedIRHA
شنبه 26 شهریور 1390, 21:53 عصر
اینطوری :
jList1.ensureIndexIsVisible(jList1.getSelectedInde x() - 1);
spiderman200700
یک شنبه 27 شهریور 1390, 01:34 صبح
جناب saeedIRHA ازتون خیلی ممنونم.
من چند ماهه که جاوا کار میکنم.خیلی تازه کارم.
منو ببخشید اگه سوالای پیش پا افتاده می پرسم.
راستی نمیدونم چرا همیشه قبل از اینکه دوستان جواب سوالاتمو بدن،خودم جوابمو کشف میکنم.
ایندفعه هم خودم تونستم یه کاری بکنم.
دیگه از پیدا کردن جواب نا امید شده بودم که پیش خودم گفتم سوالمو اینجا مطرح کنم.
ولی نمیدونم چی شد که امروز جوابو پیدا کردم.البته با یه روش دیگه.
اینم روشی که من انجام دادم:
jScrollPane.getViewport().setViewPosition( new Point(0,list.getSelectedIndex()*list.getFixedCellH eight()));
البته روش شما خیلی مختصر و دقیقتره.
ممنون از راهنماییتون. :تشویق:
saeedIRHA
یک شنبه 27 شهریور 1390, 02:41 صبح
هر سوألی دوست داری مطرح کن، تا اونجا که بلد باشم در خدمتتون هستم
همه اولش تازه کار بودن و اینکه جوینده یابنده است :)
موفق باشی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.