تغيير الملصقات المعروضة ل jslider؟
سؤال
لدي Jslider مع دقيقة واحدة من 0 وما كحد أقصى 10000. لدي علامات القراد الرئيسية التي وضعت عند 1000. إذا كنت أرسم الملصقات الآن، فسيظهرون باسم 0، 1000 و 2000 و 3000 و 4000 وما إلى ذلك. ما أود عرضه سيكون 0 و 1 و 2 و 3 و 4 و 5، وما إلى ذلك كن طريقة جيدة لإنجاز هذه المهمة؟
المحلول
استخدام JSLIDER.SETLABELTable (قاموس)
تعديل
بدلا من ذلك، يمكنك الاعتماد على التسمية المحددة مسبقا واجهة المستخدم فقط وتغيير نص الملصقات:
Enumeration e = jSlider.getLabelTable().keys();
while (e.hasMoreElements()) {
Integer i = (Integer) e.nextElement();
JLabel label = (JLabel) jSlider.getLabelTable().get(i);
label.setText(String.valueOf(i / 1000));
}
نصائح أخرى
يمكنك استخدام JSlider.setLabelTable(Dictionary)
لتعيين ملصقات محددة للقيم التي ترغب في تقديمها بشكل مختلف؛ على سبيل المثال
JSlider slider = ...
Dictionary dict = new Hashtable();
for (int i=0; i<=10000; i += 1000) {
dict.put(i, new JLabel(Integer.toString(i / 1000)));
}
slider.setLabelTable(dict);
(تم التعديل بناء على التعليقات السابقة.)
لا تنتمي إلى StackOverflow