大家好 我有一个JFrame,我已经为那个JFrame添加了一个JButton 我还在我的JButton中添加了一个ActionListener 现在请将此伪代码转换为Java:
public void actionPreformed(ActionEvent e){
if (isShiftDown)
print "Shift is Down.";
else
print "Shift is Up.";
}
实际上我想知道isShiftDown,而我的JButton是否按下了。
感谢。
答案 0 :(得分:6)
将<{1}}替换为
<德尔> isShiftDown
德尔>
(e.getModifiers() & InputEvent.SHIFT_MASK) != 0
getModifiers()返回在事件(alt,ctrl,shift ...)中按下的所有修饰符的位掩码,您可以按位 - 并获取其中一个的状态。几乎就是它在文档中所说的内容。
编辑:从Java 9开始,建议使用(e.getModifiers() & ActionEvent.SHIFT_MASK) != 0
编辑2:在这种情况下(ActionEvent#getModifiers() (Java SE 9 & JDK 9)),应使用InputEvent.SHIFT_DOWN_MASK
代替ActionEvent.SHIFT_MASK