javaprogger1987
Erfahrenes Mitglied
Hallo!
Ich habe folgendes Problem, ich bin dabei mir eine eigene ProgressBar zu basteln, das meiste funktioniert auch schon, nur bei den Details hapert es etwas..
So wie auf dem ersten angehängten Bild sieht die ProgressBar bis jetzt aus, erstmal eigentlich ganz ok..
Das Problem ist nun wenn man genauer hinguckt bzw. eine andere Hintergrundfarbe nimmt (Bild2). Der Border ist ein eigener (einfach 2 RoundRects - eins für Schatten eins für den Border).
Mein erstes Problem ist nun, das der Schatten zwar ungefähr richtig ist, aber nicht so wie er eigentlich sein sollte (Liegt vermutlich daran das ich es mir mit dem Zeichnen ein wenig einfach gemacht habe
) - gibt es eine andere Möglichkeit so einen Schatten zu zeichnen?
Das andere Problem erkennt man auch auf Bild 2 - die weißen überstehenden Teile der ProgressBar Füllung. Da ich einen Verlauf verwende wüsste ich nicht wie ich fillRoundRect verwenden könnte um das zu verhindern, denn mein Zeichnungsschleife sieht so aus:
Kann ich irgendwie aus dem Durchmesser der Ecken (arc) berechnen wie breit und hoch die Ecken letztendlich sind?
Danke schonmal
Gruß
Ich habe folgendes Problem, ich bin dabei mir eine eigene ProgressBar zu basteln, das meiste funktioniert auch schon, nur bei den Details hapert es etwas..
So wie auf dem ersten angehängten Bild sieht die ProgressBar bis jetzt aus, erstmal eigentlich ganz ok..
Das Problem ist nun wenn man genauer hinguckt bzw. eine andere Hintergrundfarbe nimmt (Bild2). Der Border ist ein eigener (einfach 2 RoundRects - eins für Schatten eins für den Border).
Mein erstes Problem ist nun, das der Schatten zwar ungefähr richtig ist, aber nicht so wie er eigentlich sein sollte (Liegt vermutlich daran das ich es mir mit dem Zeichnen ein wenig einfach gemacht habe

Java:
g.drawRoundRect( x, y, width-1, height-1, arc, arc );
g.setColor( Color.BLACK );
g.drawRoundRect( x, y, width-2, height-2, arc-1, arc-1 );
Das andere Problem erkennt man auch auf Bild 2 - die weißen überstehenden Teile der ProgressBar Füllung. Da ich einen Verlauf verwende wüsste ich nicht wie ich fillRoundRect verwenden könnte um das zu verhindern, denn mein Zeichnungsschleife sieht so aus:
Java:
for ( int i = 0; i < amountFull; i++ )
{
g2.setColor( getFadeFromWhite( base, progressBar.getWidth(), i ) );
g2.fillRect( i, 0, 1, progressBar.getHeight() - 1 );
}
Kann ich irgendwie aus dem Durchmesser der Ecken (arc) berechnen wie breit und hoch die Ecken letztendlich sind?
Danke schonmal

Gruß