1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
public class MonSliderUI extends MetalSliderUI {
public void paintThumb(Graphics g) {
//-------------------------------
if (slider instanceof MonJSlider) {
Image image = ((MonJSlider)slider).getImage();
if (image == null) {
Color userColor = ((MonJSlider)slider).getColor();
g.setColor(userColor);
g.fillOval(thumbRect.x, thumbRect.y, thumbRect.width, thumbRect.height);
} else {
int height = image.getHeight(null);
int width = image.getWidth(null);
int centerX = thumbRect.x + (thumbRect.width/2);
int centerY = thumbRect.y + (thumbRect.height/2);
g.drawImage(image, centerX-(width/2), centerY-(height/2), width, height, null);
//on repaint le composant contenant l'image du thumb
Component component = ((MonJSlider)slider).getComponent();
component.repaint();
}
} else
super.paintThumb(g);
}
/**
* surchage de paintTrack : fleche vers le haut de couleur du slider et d'épaisseur 3
*/
public void paintTrack(Graphics g) {
//--------------------------------------
if (slider instanceof MonJSlider) {
Graphics2D g2d = (Graphics2D) g;
Color userColor = ((MonJSlider)slider).getColor();
g2d.setColor(userColor);
//MonJSlider est un slider vertical
//if faudrait rajouter du code si MonJSlider pourrait être horizontal
int x = trackRect.x + trackRect.width/2;
//sauvegarde de l'épaisseur du trait
Stroke s = g2d.getStroke();
//trait épais
g2d.setStroke(new BasicStroke(3));
g2d.drawLine(x, trackRect.y, x, trackRect.y+trackRect.height);
g2d.drawLine(trackRect.x, trackRect.y+10, x, trackRect.y);
g2d.drawLine(trackRect.x + trackRect.width, trackRect.y+10, x, trackRect.y);
//retour au trait "normal"
g2d.setStroke(s);
drawSelected(g2d);
} else
super.paintTrack(g);
} |
Partager