инициировать событие ДО изменения выбора на JRadioButton - PullRequest
0 голосов
/ 11 февраля 2019

В настоящее время у меня есть диалоговое окно подтверждения, которое появляется, когда (после) нажата радиокнопка, если пользователь нажимает нет, тогда я должен вернуться к предыдущей (активной) радиокнопке.то, что я хочу сделать, это вывести диалоговое окно подтверждения ДО того, как на самом деле будет выбрана радиокнопка, поэтому, если пользователь нажимает кнопку «нет», мне не нужно ничего возвращать.это возможно / жизнеспособно?

вот как я сейчас это делаю:

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 и таким образом яЯ знаю, покидаю ли я или вхожу в состояние, чтобы я мог оставить свой вопрос в отпуске, но следующий ввод произойдет до того, как я закончу спрашивать пользователя.Есть ли способ заставить отменить вход?задержать это ожидание на входе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...