Hallo,
ich habe ein kleines Prog geschrieben das vor wenigen Minuten noch Buttons (AWT) besaß, diese hab ich in JButtons geändert da ich nicht die normalen Buttons benutzen will sondern mit setIcon eine Grafik haben möchte.
Auf einen Tastendruck bewegten sich die Buttons nach oben bzw. nach unten (Menü), das mache ich in dem ich eine Schleife laufen lasse (für 50px 50 Durchläufe) und in der Schleife habe ich einen Thread.sleep auf 3 millisekunden stehen. Die Buttons wurden mit Button.setLocation(x+1,y) bewegt. Das ganze lief auch wunderbar, bis ich das ganze auf JButtons umgestellt habe... Jetzt springen diese nurnoch in die Endposition, die schleife läuft aber auch weiterhin.
Die Buttons liegen auf einem Panel, da habe ich auch noch das Problem dass bei der Bewegung ein weißer schatten hinterher gezogen wird bis die Buttons die Endposition erreicht haben. Aber das war bei den Buttons nicht den JButtons weil die gehen ja garnicht...
Wie bekomme ich wieder diese Bewegung hin?
Hier mal ein Ausschnitt des Codes (bissel zerflückt da ich ein bisschen rum probiert habe)
Danke schon mal im voraus
ich habe ein kleines Prog geschrieben das vor wenigen Minuten noch Buttons (AWT) besaß, diese hab ich in JButtons geändert da ich nicht die normalen Buttons benutzen will sondern mit setIcon eine Grafik haben möchte.
Auf einen Tastendruck bewegten sich die Buttons nach oben bzw. nach unten (Menü), das mache ich in dem ich eine Schleife laufen lasse (für 50px 50 Durchläufe) und in der Schleife habe ich einen Thread.sleep auf 3 millisekunden stehen. Die Buttons wurden mit Button.setLocation(x+1,y) bewegt. Das ganze lief auch wunderbar, bis ich das ganze auf JButtons umgestellt habe... Jetzt springen diese nurnoch in die Endposition, die schleife läuft aber auch weiterhin.
Die Buttons liegen auf einem Panel, da habe ich auch noch das Problem dass bei der Bewegung ein weißer schatten hinterher gezogen wird bis die Buttons die Endposition erreicht haben. Aber das war bei den Buttons nicht den JButtons weil die gehen ja garnicht...
Wie bekomme ich wieder diese Bewegung hin?
Hier mal ein Ausschnitt des Codes (bissel zerflückt da ich ein bisschen rum probiert habe)
Code:
// Die Buttons werden nach OBEN bewegt
public void moveUp()
{
if( this.lastButton == this.activeButton )
return;
int moveLenght = this.buttonBoundsSpacer + this.buttonBoundsHoehe;
int tmp = 0;
for( int i = 0; i < moveLenght; i++ )
{
try { Thread.sleep( 3 ); } catch( Exception e ) { }
// Bewegung aller Buttons
for( int x = 0; x < this.ButtonArray.length; x++ )
{
int posX = this.ButtonArray[x].getX();
int posY = this.ButtonArray[x].getY() - 1;
this.ButtonArray[x].setLocation(posX, posY);
this.ButtonArray[x].repaint();
this.repaint();
// Lässt die am unteren und oberen Bildrand angrenzenden Buttons verschwinden
// bzw. werden wieder angezeigt wenn sie in den Anzeigebereich kommen
if( this.ButtonArray[x].getBounds().y < ( -moveLenght ) || this.ButtonArray[x].getBounds().y > ( this.getHeight() - 5 ) )
this.ButtonArray[x].setVisible( false );
else
this.ButtonArray[x].setVisible( true );
}
// Bewegung des Buttons der in der Mitte ist
if( tmp == 5 )
{
this.ButtonArray[this.activeButton].setLocation( ( this.ButtonArray[this.activeButton].getBounds().x - 1 ) , this.ButtonArray[this.activeButton].getBounds().y );
this.ButtonArray[this.activeButton+1].setLocation( ( this.ButtonArray[this.activeButton+1].getBounds().x + 1 ) , this.ButtonArray[this.activeButton+1].getBounds().y );
tmp = 0;
}
else
{
tmp++;
}
this.repaint();
}
this.activeButton++;
}
Danke schon mal im voraus