2011-04-08 14 views
5

हाय सब
मैं एक JFrame है और मुझे लगता है कि JFrame करने के लिए एक JButton जोड़ दिया है।
इसके अलावा मैं अपने JButton के लिए एक ActionListener जोड़ दिया है।
अब जावा को यह स्यूडोकोड परिवर्तित करें:isShiftDown जब JButton दबाया?

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

असल में मैं isShiftDown जानना चाहता हूँ, जबकि मेरी JButton दबाया है या नहीं।

धन्यवाद।

उत्तर

6

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

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

getModifiers() एक घटना (आल्ट, Ctrl, Shift ...) के दौरान दबाए सभी संशोधक का बिटमास्क देता है कि आप कर सकते हैं बिटवाइज़

द्वारा isShiftDown की जगह और उनमें से एक की स्थिति प्राप्त करने के लिए। डॉक्टर में यह बहुत कुछ कहता है।

संपादित करें: जावा 9 के रूप में यह InputEvent.SHIFT_DOWN_MASK

EDIT2 उपयोग करने के लिए सिफारिश की है: इस मामले (ActionEvent#getModifiers() (Java SE 9 & JDK 9)) में, का उपयोग करना चाहिए ActionEvent.SHIFT_MASK बजाय InputEvent.SHIFT_MASK

+0

यह काम करता है! धन्यवाद, क्या आप समझाएंगे कि यह कैसे काम करता है? –

+0

निश्चित रूप से, getModifiers() किसी ईवेंट (alt, ctrl, shift ...) के दौरान दबाए गए सभी संशोधकों का बिटमैस्क देता है जिसे आप थोड़ा सा कर सकते हैं-और उनमें से किसी की स्थिति प्राप्त करने के लिए। डॉक्टर में यह बहुत कुछ कहता है। यदि आप अपनी जरूरतों के अनुरूप हैं तो क्या आप मेरा जवाब स्वीकार कर सकते हैं? – Rom1

+0

ज़रूर। यह मेरी जरूरतों के अनुरूप है :) –

संबंधित मुद्दे