Hallo,
ich möchte einen Mauslistner der bei gepresster Maustaste eine
bestimmte Methode in einer schleife ausführt.
jetzt habe ich die while schleife eingebaut aber das ganze läuft zu
schnell so das der
Mausreleased nicht mehr reagiert.
Kann mir jemand weiterhelfen wie ich eine Schleife verlangsame.
Danke für eure hilfe
anbei code:
private void configureMyCustomSpinboxMouseListener()
{
fldItemQuantity.addMouseListener( new MouseListener() {
boolean pressed = false;
// mouse listener code follows here
public void mouseClicked( MouseEvent e ) {}
public void mouseEntered( MouseEvent e ) {}
public void mouseExited( MouseEvent e ) {}
public void mousePressed( MouseEvent e )
{
// Klickhöhe ist in e.getY(), Feststellung der
Maustaste aus e.getModifiers
// Wenn obere Hälfte angeklickt ist, bedeutet das
Stückzahl erhöhen, wenn untere, erniedrigen.
if ( isMouseButton1( e ) ) {
OldMatom4ItemCollection containingCollection =
( (MatomguiConfigboxForEntrytypeQuantityExtensible2) getParent()
).itemDataCollection;
if ( isPosInUpperHalf( e ) )
{
//Hier setzte ich den Wert pressed auf true damit die Schleife
losläuft
pressed = true;
while(pressed)
{
performIncrement();
}
}
else
{
performDecrement();
}
}
}
//Invoked when a mouse button has been released on a
component.
public void mouseReleased( MouseEvent e )
{
if ( ( e.getModifiers() & InputEvent.BUTTON1_MASK
) != 0 )
{
adjustArrowIconAsInactive();
invalidate();
validate();
//Hier setzte ich den Wert pressed auf false damit die Schleife stoppt
pressed = false;
}
}
private boolean isPosInUpperHalf( MouseEvent e )
{
return ( e.getY() < ( getHeight() / 2 ) );
}
// end mouse listener code
} // added anonymous mouse listener
); // addMouseListener
}