Java 从确认的JOptionPane接收单选组按钮选择的结果

Java 从确认的JOptionPane接收单选组按钮选择的结果,java,swing,joptionpane,jradiobutton,buttongroup,Java,Swing,Joptionpane,Jradiobutton,Buttongroup,我制作了一个包含两组单选按钮的面板。您可以在下图中找到JPanel的结果。然后,我使用以下代码将此面板添加到JOptionPane框中: OptionsForDisjunctionNodes optionsForDisjunctionNodes=new OptionsForDisjunctionNodes(); JPanel p=optionsForDisjunctionNodes.getPanel(); int option = JOptionPane.showConfirmDialog(n

我制作了一个包含两组单选按钮的面板。您可以在下图中找到
JPanel
的结果。然后,我使用以下代码将此面板添加到
JOptionPane
框中:

OptionsForDisjunctionNodes optionsForDisjunctionNodes=new  OptionsForDisjunctionNodes();
JPanel p=optionsForDisjunctionNodes.getPanel();
int option = JOptionPane.showConfirmDialog(null, p, "Decision on Disjunctive Nodes", JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE);
if (JOptionPane.OK_OPTION == option) {
    // Print selected radio button in each group. How?
} else {
    // Do something else. 
}
假设组框的名称是
buttonGroup1
,和
buttonGroup2

我需要在用户单击“确定”按钮时,打印两组中选定的标签


让选项ForDisjunctionNodes向单选按钮添加侦听器。当按下时,让它存储上次按下的任何选项

然后还提供OptionsForDisjunctionNodes上的getter来检索此信息


或者,您仍然在OptionsForDisjunctionNodes中提供getter,但让它们在按钮组上循环以查找所选的选项


查看有关如何准确执行此操作的想法。

您可以使用
JRadioButtons
上的操作命令,如下所示:

ButtonGroup buttonGroup1=new ButtonGroup();
JRadioButton r1=new JRadioButton();
JRadioButton r2=new JRadioButton();
r1.setActionCommand("hello");

buttonGroup1.add(r1);
buttonGroup1.add(r2);
if (JOptionPane.OK_OPTION == option) {
    System.out.println(buttonGroup1.getSelection().getActionCommand());
    System.out.println(buttonGroup2.getSelection().getActionCommand());
} else {

}
您的if将如下所示:

ButtonGroup buttonGroup1=new ButtonGroup();
JRadioButton r1=new JRadioButton();
JRadioButton r2=new JRadioButton();
r1.setActionCommand("hello");

buttonGroup1.add(r1);
buttonGroup1.add(r2);
if (JOptionPane.OK_OPTION == option) {
    System.out.println(buttonGroup1.getSelection().getActionCommand());
    System.out.println(buttonGroup2.getSelection().getActionCommand());
} else {

}

对于
按钮组1
,如果选择了r1,则在这种情况下会打印hello

答案的丢失取决于DisjunctionNodes选项的设计。为了更快地获得更好的帮助,请发布or。
选项ForDisjunctionNodes
是一个
JPanel
,其中包含2个
groupBox
MCVE/SSCCE是代码,而不是(糟糕的)文本解释。虽然我还记得:请参见(Windows上的Alt+PrintScreen是您的朋友。)我想尝试第二种解决方案,但它会抱怨
找不到符号symbol:variable buttonGroup1
@Salman您能显示完整的代码吗?我认为它超出了范围,但不能确定