seleccionar - identificando doble clic en java
eventos del mouse en java netbeans (3)
Quiero saber cómo podemos realizar una acción cuando se hace doble clic en el mouse en un componente.
El e.getClickCount()==2
no es suficiente si desea permitir que sus usuarios hagan múltiples clics dobles en un breve retraso. Usted está limitado por la configuración del escritorio. Puede obtenerlo mirando el resultado de Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
Una buena forma de eludir el problema no es usar la comprobación getClickCount()
, sino usar un Timer
donde puede elegir el intervalo máximo entre sus clics y manejar por cuenta propia (muy simple).
El código asociado:
boolean isAlreadyOneClick;
@Override
public void mouseClicked(MouseEvent mouseEvent) {
if (isAlreadyOneClick) {
System.out.println("double click");
isAlreadyOneClick = false;
} else {
isAlreadyOneClick = true;
Timer t = new Timer("doubleclickTimer", false);
t.schedule(new TimerTask() {
@Override
public void run() {
isAlreadyOneClick = false;
}
}, 500);
}
}
Probado con Win Xp OS y perfecto.
Suponiendo que quiere decir en Swing, asigne un MouseListener a su Componente:
addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2){
// your code here
}
}
});
Referencia:
- Tutorial de Java: Cómo escribir un Oyente de Ratón
public void mouseClicked(MouseEvent event)
{
if (event.getClickCount() == 2) {
System.out.println("double clicked");
}
}