嗯,它很奇怪。顺便说一句,我不擅长单选按钮。但是我在 netbeans 中制作了一个 JPanel 程序,其中包括一个 RadioButton。您使用 JTextFields 输入所有这些信息(没问题),最后我有一个 JButton,您可以单击所需的选项。然后我有一个 JButton,它获取所有信息并输出它。对于 RadioButton,我首先输入了通常的:
family = new JRadioButton("Family", true);
friend = new JRadioButton("Friend");
relative = new JRadioButton("Relative");
friendFriend = new JRadioButton("Friend of Friend");
ButtonGroup group = new ButtonGroup();
group.add (friend);
group.add (family);
group.add (relative);
group.add (friendFriend);
(我不确定我是否需要 RadioButtons 的侦听器,但无论如何我的程序似乎仍然“崩溃”)。
然后我有一个用于 JButton 的操作侦听器,其中包括所有文本字段和单选按钮。但是 RadioButton 是问题所在。
在我的动作监听器中: Object source = event.getSource();
if (source == family)
relation1 = true;
else
if (source == friend)
relation2 = true;
else
if(source == relative)
relation3 = true;
else
if(source == friendFriend)
relation4 = true;
然后我做了一个关系类: public class Relation { private boolean arrayFamily, arrayFriend, arrayRelative, arrayFriendFriend;
public Relation(boolean relation1, boolean relation2, boolean relation3,
boolean relation4)
{
this.arrayFamily = relation1;
this.arrayFriend = relation2;
this.arrayRelative = relation3;
this.arrayFriendFriend = relation4;
}
public String relations ()
{
String relationship = null;
if(arrayFamily && !arrayFriend && !arrayRelative && !arrayFriendFriend == true)
{
relationship = "Family";
}
else
if(arrayFriend && !arrayFamily && !arrayRelative &&
!arrayFriendFriend == true)
{
relationship = "Friend";
}
else
if(arrayRelative && !arrayFamily && !arrayFriend &&
!arrayFriendFriend == true)
{
relationship = "Relative";
}
else
if(arrayFriendFriend && !arrayFamily && !arrayFriend &&
!arrayRelative == true)
{
relationship = "Friend of a Friend";
}
return relationship;
}
}
最后回到动作监听器,我实现了这个类:
Relation relationship = new Relation(relation1, relation2, relation3
, relation4);
String arrayRelation = relationship.relations();
我最后将arrayRelation 包含在一个数组中,但该数组工作正常。
我的问题是我的 RadioButtons 的数组输出一直读取“null”(最有可能是因为此代码:String relationship = null;)。我认为这意味着我的 if else 语句都不满足,我真的不知道为什么。同样重要的是要指出,如果我单击提交而不单击任何单选按钮(按钮保持在“家庭”上),它会显示为空。如果我单击一个按钮,它可以完美地读取我想要的字符串。但是,如果我之后单击另一个按钮并再次单击提交,则字符串将返回为“null”。
我知道它很长,但我真的很感激任何帮助,因为我迷路了。
PS我的代码的某些部分是重复的,因为我正在尝试解决问题。