2011-04-08 19 views
5

Hola a todos
Tengo un JFrame y he agregado un JButton a ese JFrame.
También he agregado un ActionListener a mi JButton.
Ahora, por favor convertir esta Pseudocódigo a Java:isShiftDown cuando JButton presiona?

public void actionPreformed(ActionEvent e){ 
    if (isShiftDown) 
     print "Shift is Down."; 
    else 
     print "Shift is Up."; 
} 

En realidad quiero saber isShiftDown mientras mi JButton presionado o no.

Gracias.

Respuesta

6

sustituir por isShiftDown

(e.getModifiers() & InputEvent.SHIFT_MASK) != 0

(e.getModifiers() & ActionEvent.SHIFT_MASK) != 0

getModifiers() devuelve una máscara de bits de todos los modificadores se pulsa durante un evento (alt, ctrl, shift ...) que puede en modo bit -y para obtener el estado de uno de ellos. Más o menos lo que dice en el documento.

Editar: A partir de Java 9 se recomienda utilizar InputEvent.SHIFT_DOWN_MASK

Edit2: En este caso (ActionEvent#getModifiers() (Java SE 9 & JDK 9)), debe utilizar ActionEvent.SHIFT_MASK en lugar de InputEvent.SHIFT_MASK

+0

¡Funciona! gracias, ¿podrías explicarme cómo funciona? –

+0

Claro, getModifiers() devuelve una máscara de bits de todos los modificadores que se presionan durante un evento (alt, ctrl, shift ...) que puede realizar en modo bit y para obtener el estado de uno de ellos. Más o menos lo que dice en el documento. ¿Puedes aceptar mi respuesta si satisface tus necesidades? – Rom1

+0

Claro. Se adapta a mis necesidades :) –

Cuestiones relacionadas