هل هناك طريقة لقلب jslider بحيث يشير سهم شريط التمرير إلى الأعلى؟
سؤال
لقد كنت أحاول إيجاد طريقة للقيام بذلك لفترة من الوقت الآن ولا يمكنني اكتشاف ذلك تمامًا. أعلم أنه يمكنك تغيير اتجاه JSlider ، باستخدام setorientation (أفقي | عمودي) ، ويمكنك أيضًا قلب المقياس ، باستخدام setInverted (صحيح). مشكلتي هي كما يلي:
1) يجب أن يكون JSLIDER أفقيًا ؛
2) يجب أن يكون JSLIDER أقل من البيانات ؛
3) يجب أن يشير السهم (المدبب) على شريط التمرير الفعلي إلى الأعلى ، وليس لأسفل (أي: نحو البيانات).
الطريقة الوحيدة التي يمكنني من خلالها فهم ذلك هي الكتابة فوق طريقة PaintComponent من JComponent وإعادة ترميزها تمامًا من أجل JSlider مخصص ، والتي تبدو سخيفة ، ولست متأكدًا من أنها ستنجح.
شكرا للمساعدة!
المحلول
يمكنك تجاوز الصورة المصغرة المستخدمة في Uimanager كيف تخفي مقبض JSlider؟
UIManager.getLookAndFeelDefaults().put(
"Slider.horizontalThumbIcon",
new Icon('your_icon')
);
ومع ذلك ، سيتم القيام بذلك لجميع المنزلقات في برنامجك.