在更改JRadioButton的选择之前触发事件

时间:2019-02-11 12:49:45

标签: java swing

当前,我有一个确认对话框,当(单击)单选按钮时,该对话框会弹出,如果用户单击否,那么我必须恢复到先前的(活动)单选按钮。我想要做的是在实际选择单选按钮之前弹出确认对话框,这样,如果用户单击“否”,则无需还原任何内容。 这可能/可行吗?

这是我目前的做法:

for (Map.Entry<Integer, JRadioButton> entry : state.entrySet()) {
            entry.getValue().addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if (JOptionPane.showConfirmDialog(entry.getValue(),
                            "Move device to position " + entry.getKey()
                                    + " ?", "Move Device?",
                            JOptionPane.YES_NO_OPTION,
                            JOptionPane.QUESTION_MESSAGE) ==
                            JOptionPane.YES_OPTION) {
                        prev = entry.getValue();
                        controller.device(entry.getKey());
                    }else if(prev != null){
                        prev.setSelected(true);
                    }
                }
            });
        }

更新: 我发现我可以使用ItemListener而不是ActionListener,这样我就知道我是要离开还是要进入状态,所以我可以在休假时弹出问题,但是下一次输入要在完成之前进行问用户。有没有办法使取消进入的发生?延迟它等待输入?

0 个答案:

没有答案