当前,我有一个确认对话框,当(单击)单选按钮时,该对话框会弹出,如果用户单击否,那么我必须恢复到先前的(活动)单选按钮。我想要做的是在实际选择单选按钮之前弹出确认对话框,这样,如果用户单击“否”,则无需还原任何内容。 这可能/可行吗?
这是我目前的做法:
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
,这样我就知道我是要离开还是要进入状态,所以我可以在休假时弹出问题,但是下一次输入要在完成之前进行问用户。有没有办法使取消进入的发生?延迟它等待输入?