如何检查单选按钮是否选中?
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 的数字。因此,如果发生这种情况,您的程序将再次中断。但是,如果您对方法进行上述更改,那么您当前面临的问题将得到解决。
我尝试过使用 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 的数字。因此,如果发生这种情况,您的程序将再次中断。但是,如果您对方法进行上述更改,那么您当前面临的问题将得到解决。