如何检查单选按钮是否选中?

How check radio buttons checked or not?

我尝试过使用 if 语句的简单 java 程序。
为此,我使用单选按钮来检查是否选中?
请检查我下面的代码是否正常工作有人请帮助我吗?
下面的项目 link
https://drive.google.com/file/d/1xhNbKyXYJh2k5i7a6nVl1VkTY7dTNzSg/view?usp=sharing

private void BTN_submitActionPerformed(java.awt.event.ActionEvent evt) {                                           
        String finalResult;
        int age = Integer.parseInt(TXT_age.getText());
        RBTN_male.setActionCommand("male");
        RBTN_female.setActionCommand("female");
        String radio_Result = BTNgrp_gender.getSelection().getActionCommand();


        if (RBTN_male.isSelected() || RBTN_female.isSelected()) {
            if (TXT_age.getText() == null || TXT_age.getText().trim().isEmpty()) {

                JOptionPane optionPane = new JOptionPane("Please fill your age", JOptionPane.ERROR_MESSAGE);
                JDialog dialog = optionPane.createDialog("Age missing");
                dialog.setAlwaysOnTop(true);
                dialog.setVisible(true);

            } else {
                if (age == 0) {
                    JOptionPane optionPane = new JOptionPane("Please enter valid age", JOptionPane.ERROR_MESSAGE);
                    JDialog dialog = optionPane.createDialog("Wrong age");
                    dialog.setAlwaysOnTop(true);
                    dialog.setVisible(true);
                } else {
                    if (age > 0 && age <= 5) {
                        finalResult = "Rhymes";
                        LBL_result.setText(finalResult);
                    } else if (age > 15) {
                        finalResult = "Poetry";
                        LBL_result.setText(finalResult);
                    }
                }
            }

        } else {
            JOptionPane optionPane = new JOptionPane("Please Select Your Gender", JOptionPane.ERROR_MESSAGE);
            JDialog dialog = optionPane.createDialog("Gender Missing");
            dialog.setAlwaysOnTop(true);
            dialog.setVisible(true);
        }


    }                                          

你的代码的主要问题在你方法的第二行BTN_submitActionPerformed

int age = Integer.parseInt(TXT_age.getText()); 

此处 TXT_age 的值是 “输入您的年龄”。现在无法将其解析为整数,因此抛出 NumberFormatException 以阻止程序继续其预期的执行过程。该程序还会在单击时从此字段中删除占位符文本,将其留空,即 “”,因此提交它也会导致错误。

要解决上述问题,您可以重写此方法如下:

    private void BTN_submitActionPerformed(java.awt.event.ActionEvent evt) {
        int age;
        String finalResult;
        JOptionPane optionPane;
        JDialog dialog;
        RBTN_male.setActionCommand("male");
        RBTN_female.setActionCommand("female");
        try {
            age = Integer.parseInt(TXT_age.getText());
            if (RBTN_male.isSelected() || RBTN_female.isSelected()) {

                if (age == 0  || age < 0 ) {
                    optionPane = new JOptionPane("Please enter valid age", JOptionPane.ERROR_MESSAGE);
                    dialog = optionPane.createDialog("Wrong age");
                    dialog.setAlwaysOnTop(true);
                    dialog.setVisible(true);
                } else {
                    if (age > 0 && age <= 5) {
                        finalResult = "Rhymes";
                        LBL_result.setText(finalResult);
                    } else if (age > 15) {
                        finalResult = "Poetry";
                        LBL_result.setText(finalResult);
                    }
                }

            } else {
                optionPane = new JOptionPane("Please Select Your Gender", JOptionPane.ERROR_MESSAGE);
                dialog = optionPane.createDialog("Gender Missing");
                dialog.setAlwaysOnTop(true);
                dialog.setVisible(true);
            }
        } catch (NumberFormatException e) {
            optionPane = new JOptionPane("Please fill your age", JOptionPane.ERROR_MESSAGE);
            dialog = optionPane.createDialog("Age missing");
            dialog.setAlwaysOnTop(true);
            dialog.setVisible(true);
        }

    }

在旁注中,您还可以考虑可能出现的其他问题。例如,由于用户可以在文本字段中输入任何内容,这意味着用户可以输入一个可能不适合 int 的数字。因此,如果发生这种情况,您的程序将再次中断。但是,如果您对方法进行上述更改,那么您当前面临的问题将得到解决。