2011-04-08 13 views
5

Herkese selam
JFrame'im var ve JFrame'e bir JButton ekledim.
Ayrıca JButton'uma bir ActionListener ekledim.
Şimdi Java bu yalancı kod dönüştürmek edin:isShiftDown mı?

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

Aslında isShiftDown bilmek istiyorum benim JButton basılı ya da değil iken.

Teşekkürler.

cevap

6

tarafından (e.getModifiers() & InputEvent.SHIFT_MASK) != 0

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

getModifiers() Bir olayın (alt, ctrl, shift ...) sırasında basıldığında tüm değiştiriciler ile döner sen Bitsel ki isShiftDown yerine -ve onlardan birinin statüsünü almak. Doktora ne yazıyorsa.

Düzenleme: InputEvent.SHIFT_DOWN_MASK

EDIT2 kullanılması önerilir Java 9 itibariyle: Bu durumda (ActionEvent#getModifiers() (Java SE 9 & JDK 9)) olarak, kullanması gereken ActionEvent.SHIFT_MASK yerine InputEvent.SHIFT_MASK

+0

Çalışıyor! teşekkürler, nasıl çalıştığını açıklar mısınız? –

+0

Elbette, getModifiers(), bir olay sırasında (alt, ctrl, shift ...) basılan tüm değiştiricilerin bir bit masasını döndürerek, bunlardan birinin durumunu elde edersiniz. Doktora ne yazıyorsa. İhtiyaçlarınız için cevabımı kabul edebilir misiniz? – Rom1

+0

Elbette. Bu benim ihtiyaçlarına uygun :) –

İlgili konular