Vuoi che tenendo premuto venga fatto qualcosa più volte in modo ripetuto ogni tot di tempo (più o meno alla stregua di cosa succede tenendo premuto un tasto)?? Allora innanzitutto hai bisogno di un timer.Originariamente inviato da draghe
voglio realizzare un pulsante che tenendo lo premuto mi incremente una certa variabile così da da nn dover cliccar un milione di volte.
Per ricevere notifica di pressione/rilascio del pulsante in modo "pulito" (non con MouseListener che è a livello più "basso"!) mi viene in mente di usare un ChangeListener e il ButtonModel e verificare il cambio del flag "pressed":
Ma ripeto: hai 1 evento per la pressione e 1 per il rilascio, se vuoi fare qualcosa di ripetuto a brevi intervalli di tempo devi usare un timer (es. javax.swing.Timer).codice:tuoButton.addChangeListener(new ChangeListener() { private boolean lastPressed = false; public void stateChanged(ChangeEvent e) { ButtonModel model = tuoButton.getModel(); // Eventualmente il JButton anche dal source con getSource(). if (!lastPressed && model.isPressed()) { // .... premuto, fai qualcosa } else if (lastPressed && !model.isPressed()) { // .... rilasciato, fai qualcosa } lastPressed = model.isPressed(); } });

Rispondi quotando