gpt4 book ai didi

java - 检测 JRadioButton 状态更改

转载 作者:IT老高 更新时间:2023-10-28 21:05:51 25 4
gpt4 key购买 nike

当使用鼠标单击时,如何检测 JRadioButton 何时从“未选择”更改为“已选择”?我尝试在按钮上使用 ActionListener,但是每次单击单选按钮时都会触发它,而不仅仅是在将状态更改为“已选择”时。

我曾考虑维护一个 boolean 变量来记住按钮的状态,并在 ActionListener 中对其进行测试以查看是否更改其状态,但我想知道是否有更好或更清洁的解决方案。

最佳答案

看看 JRadioButton。 addItemListener ()

编辑:您不太可能想要使用 changeListener,因为它每次点击都会触发多次。 itemListener 每次点击只触发一次。 See here

EDIT2:只是为了扩展这一点,每次用户点击它时,jradioButton 上的 actionListener 都会触发,即使它已经被选中。如果那是你想要的,很好,但我觉得这很烦人。我只想收到它被选中或取消选中的通知。

ChangeListener 会针对各种情况触发,这意味着您的监听器每次点击都会收到 5 个或更多事件。不好。

itemlistener 仅在选中或取消选中状态发生变化时触发。这意味着用户可以多次单击它,如果它不改变它就不会触发。在您的处理程序方法中,您必须有一个 if block 检查 SELECTEDDESELECTED 状态并在那里执行任何操作:

@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
// Your selected code here.
}
else if (e.getStateChange() == ItemEvent.DESELECTED) {
// Your deselected code here.
}
}

它只是工作得更好,因为你知道如果你在方法中,那么单选按钮要么刚刚被选中或取消选中,而不是用户只是出于某种未知原因在界面上敲打。

关于java - 检测 JRadioButton 状态更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1424738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com