- ベストアンサー
グループ化されたラジオボタンをfalseにする方法
次にあげるのはグループ化された3個のJRadioButtonをfalseにしたいプログラムの一部です。 groupはJRadioButtonのグループ名、radiobtnはJRadioButton名です。2つのメソッドを試みたのですが、いずれもリセットできませんでした。 詳しい方、お教えください。 for(int i=0;i<3;i++){ radiobtn[i].setText(""); //*****下記の2行のどちらかを用いて、ラジオボタンのクリアをしたいのです。***** //*****実際はどちらもだめです。 どうすればよいでしょうか。 ***** //*****これはグループ化と大いにかかわりがありそうです。なぜならば ***** //*****グループ化をはずすと、クリアできるのです。 ***** // group.setSelected(radiobtn[i].getModel(),false); radiobtn[i].setSelected(false); }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんわ。 私も詳しくないので、アドバイスですが、 APIのjavax.swing.ButtonGroupをお読みになるとそれらしいことが書いてあるような気がします。 抜粋すると、一度どれかが選択されると、そのグループでは1つのボタンが常に選択されています。ボタンをプログラム処理でオフにし、ボタングループを初期化する方法はありません。 1つも選択されていない状態を実現するには、~続く・・(というか打つの疲れましたあとはお読みください) だそうです。これをプログラムでかくと・・よくわかりませんのでだれかにパス。
その他の回答 (1)
- Bonjin
- ベストアンサー率43% (418/971)
ラジオボタンは必ずグループ内のどれかが選択されているのが原則です。 なので、全て非選択状態にしたいという条件はラジオボタンに適していません。 「どれも選択しない」などの選択肢を追加するなどインターフェースを見直した方が良いと思いますよ。
お礼
早々にご解答いただきありがとうございました。「全て非選択状態にしたいという条件はラジオボタンに適さない」というご指摘はまったくその通りだと思います。 私の作ったプログラムでは、起動時に全て非選択状態になっていたため、クリア後の再入力を待つ画面でも、同様に全て非選択状態にできるものと思い込んでしまいました。ご指摘いただけなければ、まだ本やインターネットで調べる日々が続いていたと思います。誠にありがとうございました。厚くお礼申し上げます。
お礼
ご回答いただきありがとうございました。第1回答者のご意見に納得し、グループ化しない方法を考えました。一応できたかに見えましたが、新たな問題に悩まされて居ります。ご指摘のサイトを見つけ、読んでみたのですが、今の段階では見当もつきません。でも、大切な情報として、自身でも、勉強仲間とも今後検討させていただきます。大切な情報をありがとうございました。厚くお礼申し上げます。