JSlider und paintComponent

M_Kay

Mitglied
Hi,

sicher kennen hier einige den JSlider und bestimmt auch die Methode paintComponent, welche sich für alle möglichen Swing-Objekte überschreiben lässt. ;)

Folgendes habe ich vor:
Mit meinem JSlider kann man zu einem beliebigen Start- und End-Punkt sliden und diesen mit ein Button festhalten/zwischenspeichern.
Nun möchte ich, dass dieser Bereich (zwischen Start-Position und End-Position) über dem Slider grafisch mit einer Linie oder einem 2 Pixel breitem Rect dargestellt wird.
Letztendlich gehts hier nur ums darstellen dieser Markierung.

Doch treten bei mir mit folgendem simplen Code einige Probleme auf:
Code:
public class MySlider extends JSlider {
    public void paintComponent (Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.RED);
        g.fillRect(0, 0, 200, 2);
    }
}

RHHPU.png

^So siehts aus

Die Probleme sind:
1. Der Schieberegler verschwindet unter dem roten Balken. Kriegt man das hin, dass der rote Balken unter dem Schiebregler liegt, so wo der eigentliche Balken dadrunter?
2. Der rote Balken fängt nicht dort an, wo der Slider-Bereich anfängt, sondern ca 7 Pixel weiter vorne. :'( Wie bekomme ich es hin, dass der rote Balken mit dem eigentlichen Balken des JSlider abschließt? Ich könnte das Rect natürlich einfach 7 Punkte weiter rechts zeichnen, aber das ist nicht wirklich originell. :)

Hat jemand ein paar Lösungen parat? :)
Ich könnte auch damit Leben direkt den JSlider Balken in einem bestimmten Bereich einzufärben :)

Gruss
M_Kay
 
Zurück