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
| private class EKProgressBarUI extends BasicProgressBarUI {
/** Dessin de la barre de progression dans l'état indéterminé. */
@Override
protected void paintDeterminate(Graphics g, JComponent c) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// récupération de la longueur de la barre de progression
int length = ( ((JProgressBar) c).getValue() * (getWidth() - 56) ) / 100;
if(length < 0)
length = 0;
// image de fond de la progressBar
g2d.drawImage(progressBarBackgroundLeft.getImage(), 0, 0, 2, 16, null);
g2d.drawImage(progressBarBackgroundCenter.getImage(), 2, 0, getWidth()-53, 16, null);
g2d.drawImage(progressBarBackgroundRight.getImage(), getWidth()-53, 0, 2, 16, null);
// texte indiquant le pourcentage
g2d.setColor(textColor);
g2d.setFont(font);
g2d.drawString(getValue() + "%", getWidth()-40, 14);
// image du curseur
g2d.drawImage(progressBarCursorLeft.getImage(), 0, 0, 3, 16, null);
g2d.drawImage(progressBarCursorCenter.getImage(), 3, 0, length, 16 ,null);
g2d.drawImage(progressBarCursorRight.getImage(), length + 3, 0, 3, 16, null);
}
/** Fonction servant à la mise a jour de l'affichage. */
@Override
public void update(Graphics g, JComponent c) {
repaint();
paintDeterminate(g, c);
g.dispose();
}
} |
Partager