【问题标题】:isShiftDown when JButton pressed?按下 JButton 时是 ShiftDown 吗?
【发布时间】:2011-08-01 07:32:19
【问题描述】:

大家好
我有一个 JFrame,我已经向该 JFrame 添加了一个 JButton。
我还在 JButton 中添加了一个 ActionListener。
现在请将此伪代码转换为 Java:

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

实际上,我想知道我的 JButton 是否按下时的 isShiftDown。

谢谢。

【问题讨论】:

    标签: java swing jframe jbutton keylistener


    【解决方案1】:

    isShiftDown替换为

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

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

    getModifiers() 返回在事件(alt、ctrl、shift...)期间按下的所有修饰符的位掩码,您可以按位获取其中一个修饰符的状态。和文档中说的差不多。

    编辑:从 Java 9 开始,建议使用 InputEvent.SHIFT_DOWN_MASK

    Edit2:在这种情况下(ActionEvent#getModifiers() (Java SE 9 & JDK 9)),应该使用ActionEvent.SHIFT_MASK而不是InputEvent.SHIFT_MASK

    【讨论】:

    • 当然,getModifiers() 返回事件期间按下的所有修饰符的位掩码(alt、ctrl、shift...),您可以按位获取其中一个修饰符的状态。和文档中说的差不多。如果适合您的需要,您能接受我的回答吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2013-12-23
    • 2018-09-28
    • 2014-01-12
    • 2018-04-11
    相关资源
    最近更新 更多