در این قسمت تیم کدگیت را با آموزش JSlider در جاوا همراهی کنید. طبق روال آموزشهای گذشته، ابتدا JSlider را معرفی کرده سپس متدهای پرکاربرد این کلاس را توضیح میدهیم. در آخر نیز به پیاده سازی مثالی واقعی از کلاس JSlider خواهیم پرداخت. همچنین پیشنهاد میکنیم قبل از مطالعه این جلسه، آموزشهای گذشته گرافیک در جاوا را مطالعه کنید.
کلاس JSlider
اسلایدر یک شی گرافیکی است به طوری که کاربر میتواند با جابجایی اشارهگر، مقدار آن را تنظیم کند(تصویر زیر نمایش اسلایدر است). معمولا اسلایدرها به صورت افقی هستند. کلاس JSlider در جاوا نمایش گرافیکی یک اسلایدر است. با استفاده از این کلاس کاربر میتواند مقداری را که میخواهد در یک محدوده (Range) انتخاب کند.
در زیر متدهای پرکاربرد کلاس JSlider آورده شده است:
- ()JSlider : متد Constructor است و یک اسلایدر با محدوده 0 تا 100 میسازد. همچنین اشارهگر در عدد 50 قرار دارد.
- (JSlider(int orientation : متد Constructor است و یک اسلایدر با محدوده 0 تا 100 میسازد. همچنین اشارهگر در عدد 50 قرار دارد. افقی یا عمودی بودن اسلایدر با توجه به ورودی متد مشخص میشود.
- (JSlider(int min, int max : متد Constructor است و یک اسلایدر افقی با محدوده min تا max (ورودیهای متد) را میسازد.
- (JSlider(int min, int max, int value : متد Constructor است و یک اسلایدر افقی با محدوده min تا max (ورودیهای متد) را میسازد. اشارهگر در عدد Value قرار دارد.
- (JSlider(int orientation, int min, int max, int value : متد Constructor است و یک اسلایدر افقی با محدوده min تا max (ورودیهای متد) را میسازد. اشارهگر در عدد Value قرار دارد. افقی یا عمودی بودن اسلایدر با توجه به ورودی (orientation) مشخص میشود.
- (setMinorTickSpacing(int n : این متد برای نمایش تیکهای کوچک (اصطلاحا تیکهای فرعی) استفاده میشود. ورودی متد برای تعداد فاصله بین هر تیک است بدین معنی که اگر ورودی دو باشد بین دو تیک فاصلهای به اندازه دو واحد میباشد.
- (setMajorTickSpacing(int n : این متد برای نمایش تیکهای بزرگ (اصطلاحا تیکهای اصلی) استفاده میشود. ورودی متد برای تعداد فاصله بین هر تیک است بدین معنی که اگر ورودی دو باشد بین دو تیک اصلی فاصلهای به اندازه دو واحد است.
- (setPaintTicks(boolean b : این متد برای نمایش یا عدم نمایش تیکها میباشد.
- (setPaintLabels(boolean b : این متد برای نمایش یا عدم نمایش برچسبها (اعداد) میباشد.
مثال JSlider در جاوا
در این قسمت میخواهیم برنامهای مشابه تصویر بالا را در جاوا بنویسیم. اگر به تصویر دقت کنید تیکهای به فاصله 10 واحد را مشاهده میکنید اینها تیکهای اصلی ما هستند. محدوده اسلایدر ما بین 0 تا 50 است و فاصله بین تیکهای کوچک (تیکهای فرعی) 2 واحد است. با این توصیفات کد برنامه به صورت زیر میباشد:
public class SliderExample extends JFrame {
public SliderExample() {
JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);
slider.setMinorTickSpacing(2);
slider.setMajorTickSpacing(10);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
JPanel panel = new JPanel();
panel.add(slider);
add(panel);
}
public static void main(String s[]) {
SliderExample frame = new SliderExample();
frame.pack();
frame.setVisible(true);
}
}
در کد بالا یک کلاس که از JFrame ارث بری میکند را نوشتیم. درون این کلاس یک اسلایدر افقی ساخته و آن را به Panel اضافه کردهایم. در آخر Frame را صدا زده و آن را نمایش دادیم.