Como ejecutar una accion solo mientras se mantenga un boton presionado

Iniciado por Soul_Eater, 30 Mayo 2017, 05:33 AM

0 Miembros y 1 Visitante están viendo este tema.

Soul_Eater

Buenas,necesito saber como ejecutar una accion solamente mientras el usuario mantenga el boton presionado y cuando lo suelte vuelva a su estado inicial,por ejemplo,mantengo presionado la tecla enter y un boton del frame cambia de color,pero cuando suelto el boton vuelve al color que tenia antes,la parte de los eventos del teclado me lo se ,igual q lo de e.VK_enter==e.getkeycode()  blablablabla,pero eso q les digo no me entra ninguna idea a la cabeza de como hacerlo,si pudieran resolverme ese problema se los agradeceria.

3n31ch

Una forma de hacerlo seria la siguiente:
Código (java) [Seleccionar]

package test1;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;

public class MyFrame extends JFrame implements KeyListener {

    public MyFrame() {
        super("elhacker.net");
        this.setSize(100, 100);
        this.addKeyListener(this);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
   
    @Override
    public void keyTyped(KeyEvent que) { }
    @Override
    public void keyPressed(KeyEvent que) {
        System.out.println("Press");
    }
    @Override
    public void keyReleased(KeyEvent que) { }

    public static void main(String[] args) {
        MyFrame frame = new MyFrame();
        frame.setVisible(true);
    }
   
}


Utilizo KeyListener en donde mientras se detecte la presión de una tecla (en este caso cualquier tecla) se imprimirá el mensaje "Press".

Ahora ten en cuenta que esto sucederá por cada "tic" de presión. Si lo que quieres es que se ejecute un proceso continuo tendrás que iniciar un thread en keyPressed y pausarlo en keyReleased.

Suerte con tu código!