大家好
我有一个JFrame,并且已经向该JFrame中添加了一个JButton。
另外,我已经在我的JButton中添加了一个ActionListener。
现在,请将此伪代码转换为Java:
public void actionPreformed(ActionEvent e){
if (isShiftDown)
print "Shift is Down.";
else
print "Shift is Up.";
}
实际上,我想知道是否按下我的JButton时的isShiftDown。
谢谢。
最佳答案
用替换isShiftDown
(e.getModifiers() & InputEvent.SHIFT_MASK) != 0
(e.getModifiers() & ActionEvent.SHIFT_MASK) != 0
getModifiers()返回可以按位获取事件(alt,ctrl,shift ...)期间按下的所有修饰符的位掩码,并获取其中之一的状态。它在文档中说的差不多。
编辑:从Java 9开始,建议使用InputEvent.SHIFT_DOWN_MASK
编辑2:在这种情况下(ActionEvent#getModifiers() (Java SE 9 & JDK 9)),应使用ActionEvent.SHIFT_MASK
而不是InputEvent.SHIFT_MASK