2009-07-16 7 views
4

Ich brauchte einen Slider mit zwei Knöpfen darauf (für einen Bereich) und ich fand diese raffinierte here. Sie haben jedoch ihren eigenen U.I. Das erweitert Javas BasicSliderUI. Sie überschreiben die Malmethode, um ihre eigenen Knöpfe zu zeichnen. Ich würde gerne die Standard-Knöpfe auf der aktuellen Look and Feel verwenden. Ich versuchte BasicSliderUI 's paintThumb Methode, aber das gibt mir einen generischen Blick Knopf, der nicht an das aktuelle Aussehen gebunden zu sein scheint. Soweit ich das beurteilen kann, bekommt JSlider seinen U.I. von MultiSliderUI. Wie kann ich ein U.I erstellen, das sich wie JSlider ändert, aber zwei Knöpfe anstatt einen zeichnet?Java Swing Bereich Slider U.I

Vielen Dank im Voraus!

+0

Hey, jetzt zögern Sie nicht, die Links zu posten. Ich bin zu faul, es selbst zu tun. – jjnguy

+0

P.S. Entschuldigung für diese Einschränkung. Es soll Link-Spammer verhindern. – jjnguy

+0

Links jetzt hinzugefügt. –

Antwort

2

Versuchen Sie, das aktuelle Aussehen und Gefühl von der javax.swing.UIManager und rufen Sie getUI(new JSlider()) darauf. Dies sollte die aktuelle UI für die JSlider zurückgeben, die auf JSliderUI castbar sein sollte.

Leider JSliderUI keine paintThumb(Graphics g) Methode hat, aber die BasicSliderUI der Fall ist, und zumindest unter Windows XP und Windows Vista das System Look and Feel ist eine Unterklasse von BasicSliderUI, ist so das Metall Look and Feel.

Also, wenn Sie die JSliderUI sehen, wenn es eine Instanz von BasicSliderUI ist, wenn so können Sie es auf BasicSliderUI gegossen und die paintThumb(Graphics g) darauf verwenden, sonst auf dem Weg Standard Sie es bereits tun. Ich weiß nicht, ob das tatsächlich funktioniert, aber es wäre mein erster Versuch, wenn ich es brauche.

Ich habe Linux oder Mac nicht die Quelle, wenn ihre JSliderUI s von BasicSliderUI auch abgeleitet werden, zu überprüfen, aber wenn Sie dann schauen Sie sich den Java-Quellcode.