2009-07-16 7 views
4

J'avais besoin d'un curseur avec deux boutons dessus (représentant une plage) et j'ai trouvé cet astucieux here. Cependant, ils ont créé leur propre U.I. qui étend le BasicSliderUI de Java. Ils remplacent la méthode de peinture pour dessiner leurs propres boutons. Je voudrais utiliser les boutons par défaut basés sur le regarder et ressentez. J'ai essayé d'appeler la méthode paintThumb de BasicSliderUI, mais cela me donne un bouton de recherche générique qui ne semble pas être lié à l'aspect actuel. Autant que je sache, JSlider obtient son U.I. à partir de . Comment puis-je créer un U.I qui change comme JSlider, mais dessine deux boutons au lieu d'un?Curseur Java Swing Range U.I

Merci d'avance!

+0

Hey, maintenant n'hésitez pas à poster les liens. Je suis trop paresseux pour le faire moi-même. – jjnguy

+0

P.S. Désolé pour cette restriction. Il est là pour empêcher les spammeurs de lien. – jjnguy

+0

liens ajoutés maintenant. –

Répondre

2

Essayez l'apparence actuelle du javax.swing.UIManager et appelez le getUI(new JSlider()). Cela doit renvoyer l'interface utilisateur actuelle utilisée pour le JSlider, qui doit être convertie en JSliderUI.

Malheureusement JSliderUI n'a pas une méthode paintThumb(Graphics g), mais le BasicSliderUI fait, et au moins sous Windows XP et Windows Vista le look du système et la sensation est une sous-classe de BasicSliderUI, est ainsi l'aspect métallique et se sentir.

Donc une fois que vous avez la JSliderUI voir si elle est une instance de BasicSliderUI, le cas échéant, vous pouvez le jeter aux BasicSliderUI et utiliser le paintThumb(Graphics g) sur elle, sinon par défaut à la façon dont vous le faites déjà. Je ne sais pas si cela fonctionne réellement, mais ce serait ma première tentative si j'en avais besoin.

Je n'ai pas Linux ou Mac pour vérifier la source si leurs JSliderUI sont également dérivés de BasicSliderUI, mais si c'est le cas, vérifiez le code source java.