質問: ラジオボタンの選択判定 こんばんわ。 ラジオボタンを使って判定を行いたいのですがうまくいきません。 やりたいのは、1,2,3のラジオボタンとaというボタンがありaを押したときにチェックがついているラジオボタンによって判定が変わるようにしたいのです。 初期設定を1はtrue、2,3はfalseにしてあります。 3つのボタンはグループ化してありますので、どれかひとつしかtrueがないです。 現状では、初期設定の状態でボタンを押しても反応しません。 一度ボタンのt/fを変更すれば判定ができるようになるのですが。 どなたかわかる方いらっしゃいましたら教えてください。 お願いします。
回答: aというボタンを押した時に チェックされているラジオボタンの判定をしたい。 ってだけなら itemstatechangedを実装する必要 も ラジオボタンと変数(フラグ)を併せ持つ必要 もいらないでしょ。 (ラジオボタンとフラグの二重管理でフラグセットし忘れなどバグの原因にもなりますし。) aというボタンが押されたときの処理で -------------------------------------------------- checkbox c1 = new checkbox("1"); checkbox c2 = new checkbox("2"); checkbox c3= new checkbox("3"); public void actionperformed(actionevent ae){ string command = ae.getactioncommand(); if(command.equals("aボタンのアクションコマンド")){ if(c1.getstate()){ //c1の処理 }else if(c2.getstate()){ //c2の処理 }else if(c3.getstate()){ //c3処理 }else{ //チェックされていない場合の処理 //初期設定されてるからあり得ない } } } -------------------------------------------------- でいいんじゃないかな。 他にも checkboxgroupクラスに public checkbox getselectedcheckbox() 戻り値 現在「オン」の状態であるチェックボックス、またはnull(全てのチェックボックスが「オフ」 なんてのもあるので、上記の分岐部分を -------------------------------------------------- checkboxgroup cg = new checkboxgroup(); checkbox cb = cg.getselectedcheckbo(); if(cb == null){ //全部オフ }else if(cb == c1){ //c1の処理 }else if(cb == c2){ //c2の処理 }else if(cb == c3){ //c3の処理 }else{ //上記以外(ありえない) } -------------------------------------------------- としてもいいかと。 ...あ ゙... jcheckboxだったらごめんなさい。orz