سؤال

لدي 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);

(تم التعديل بناء على التعليقات السابقة.)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top