【问题标题】:swing: is there a way to make a button/checkbox clickable only if SHIFT or CTRL is pressed?swing:有没有办法让按钮/复选框只有在按下 SHIFT 或 CTRL 时才可点击?
【发布时间】:2011-03-30 23:27:27
【问题描述】:

有没有办法检测在按钮或复选框上的单击事件期间是否按下了 Ctrl 或 Shift?

我想制作一个复选框,您必须按住修改键才能更改状态(带有适当的视觉标签),这样就更难意外点击它。

【问题讨论】:

    标签: java user-interface swing keyboard


    【解决方案1】:

    您需要使用KeyListeners 来挂钩“按键按下”和“按键释放”事件。查看this link 中有关键掩码的信息,以确定是否按下了shiftctrl(或任何键)。

    【讨论】:

    • 嗯,如何覆盖按钮行为来处理这个问题?按钮的 ActionListener 中的 actionPerformed() 方法似乎为时已晚。 (到那时,原始事件丢失了)
    • 看看我发布的 Oracle 链接。您应该使用keyPressedkeyReleased 函数。你的类应该实现KeyListener,这应该迫使你创建这些函数以及keyTyped,听起来你可以忽略。
    • 对,我明白了那部分,但我如何将它与按钮/复选框点击事件联系起来?
    • @Jason 哦,对不起 - 我想我不明白你的问题。我的想法是默认情况下您将禁用复选框,并且每当按下 shiftctrl 时,您将启用它们并在 keyRelease 上禁用它们。您还可以在收到按钮的动作侦听器时检查当前的键掩码,如果未按下按键则撤消它们的动作,但这似乎很尴尬。
    • @Jason 随时。如果您有任何其他问题,请告诉我
    猜你喜欢
    • 2019-12-05
    • 2020-04-23
    • 2021-09-16
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    相关资源
    最近更新 更多