まあ、それは奇妙です。ちなみに私はラジオボタンが苦手です。しかし、RadioButton を含む JPanel プログラムを netbeans で作成しました。このすべての情報を 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 のアクションリスナーを 1 つ用意しました。しかし、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 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 と表示されることにも注意してください。ボタンをクリックすると、意図した文字列を完全に読み取ることができます。しかし、後で別のボタンをクリックしてもう一度送信をクリックすると、文字列は「null」に戻ります。
長いことは承知していますが、迷っているので、助けていただければ幸いです。
PS私は問題を解決しようとして遊んでいたので、私のコードのいくつかの部分は繰り返しです。