こんばんわ。
ラジオボタンを使って判定を行いたいのですがうまくいきません。
やりたいのは、1,2,3のラジオボタンとaというボタンがありaを押したときにチェックがついているラジオボタンによって判定が変わるようにしたいのです。
初期設定を1はtrue、2,3はfalseにしてあります。
3つのボタンはグループ化してありますので、どれかひとつしかtrueがないです。
現状では、初期設定の状態でボタンを押しても反応しません。
一度ボタンのt/fを変更すれば判定ができるようになるのですが。
どなたかわかる方いらっしゃいましたら教えてください。
お願いします。
No.2ベストアンサー
- 回答日時:
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
この回答への補足
回答ありがとうございます。
CheckboxではなくJRadioButtonを使っています。
違いがあるのかないのかは分かりませんが、一応・・・。
記載していただいた方法でやってみました。
ですが、やはりボタンを押した際に判定ができませんでした。
No.3
- 回答日時:
まずは
ラジオボタンが2,3個
実行ボタンが1個
の簡単なものを作ってから
実際のソース(Test.java)
に乗せた方がいいですよ。
あと、前に誰かが仰ってたんですけど…
java.awt
と
java.swing
は一緒に使わないほうがいいみたいなこと言ってました。
理由は忘れましたし、今回の件に当てはまるかわからないですけど。
JRadioButtonじゃなくてButtonGroupクラスの方に選択されたボタンなどを返すメソッドがあるぽいですね。
#APIを斜め読みしただけですけど。:P
時間がありましたので、自分でやっていたところ判定ができました。
String1個用意し、初期値に3個のうちどれか入力しActionListenerで変わったらStringの値を変更させていきました。
>java.awt
>と
>java.swing
>は一緒に使わないほうがいいみたいなこと言ってました。
確かに、途中でエラーが出てきました。
そのときListが使えなくなりました。
ListやJRadioButtonを使わなければならない理由はないのですが、一度それを使用した以上最後まで使いたいと思っていたので無理矢理使えるようにしましたw
>JRadioButtonじゃなくてButtonGroupクラスの方に選択されたボタンなどを返すメソッドがあるぽいですね。
私もここでお聞きする前にプラットフォームで探してみたりしていたのですが、わからなかったので。
回答ありがとうございました。
No.1
- 回答日時:
どんな風にプログラムをしているか不明なので、
推測ですが、状況から
public void itemStateChanged(ItemEvent e){
if(cb1.getState()==true) select=1;
if(cb2.getState()==true) select=2;
if(cb3.getState()==true) select=3;
//repaint();
}
みたいな感じで、どのラジオボタンが選ばれたのかというのを変数に保存しているのではないかと思いますが、
public void init(){
cbGp = new CheckboxGroup();
cb1 = new Checkbox("1", true, cbGp);
cb1.addItemListener(this);
add(cb1);
select=1;//ラジオボタンをtrueにして変数にもセット
cb2 = new Checkbox("2", false, cbGp);
cb2.addItemListener(this);
add(cb2);
cb3 = new Checkbox("3", false, cbGp);
cb3.addItemListener(this);
add(cb3);
btn = new Button("a");
btn.addActionListener(this);
add(btn);
}
みたいな感じで、
init()の初期化で変数(フラグ)の設定を併せてやっていないのではないですか?
この回答への補足
回答ありがとうございます。
getState()を同じようにしてみたのですが、「未定義です」と表示されてしまいました。
なお、CheckboxではなくJRadioButtonを使っております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP php ラジオボタン 3 2022/11/17 16:36
- SSL・HTTPS シャープのチャンネル設定 2 2022/10/12 21:42
- その他(生活家電) パナソニックインターホンについて 2 2023/05/31 01:21
- その他(プログラミング・Web制作) Excel の判定式で正しく判定されない場合があります。 2 2022/05/31 14:43
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ラジオボタンの選択肢をサーブレットで取得するには?
Java
-
データベースの値を判断してラジオボタンにセットする方法
Java
-
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
-
4
ラジオボタンの分岐方法に関して
JavaScript
-
5
ラジオボタンのValueを受け取りたい
JavaScript
-
6
動的に作成したラジオボタンの選択肢をサーブレットに渡す
Java
-
7
Java-jspの画面入力値保持について
Java
-
8
JSPからServletへの遷移
Java
-
9
Eclipseのアンインストールの仕方
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Tomcat高負荷時の設定について
-
setTimeOutとsetInterval、どっ...
-
JDBCでテーブルUPDATE後の再検...
-
JavaScriptからJAVAクラスを呼...
-
doGetとdoPostの違い
-
JAVAにおける画像のJPEG保存の...
-
CPU使用率が100%になり特定のプ...
-
VBScriptでのWord印刷
-
Thread.sleep()はすべてのスレ...
-
アコーディオンメニューをアン...
-
jqueryのmouseenterイベントの...
-
[Java] while(true)の意味
-
JSP、サーブレットの初期処理
-
処理実行後、終了させないで最...
-
Javaでのデバッグコード削除
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
EXCEL VBAにて動的にCheckBOXを...
-
インスタンス参照でアクセスで...
-
新規契約でUQモバイル申し込も...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
doGetとdoPostの違い
-
JavaScriptからJAVAクラスを呼...
-
Javaでのデバッグコード削除
-
WPF C#でF10のイベント取得方法...
-
数値の定数を付ける時
-
Tomcat高負荷時の設定について
-
Javaプログラムからポップアッ...
-
JavaでVBのDOEVENTSと同様の処...
-
JSP、サーブレットの初期処理
-
switch文の中に、throws new Ex...
-
ExcelVBA で文字列の特定の文字...
-
VBScriptでのWord印刷
-
ラジオボタンの選択判定
-
Javaアプリケーション実行の返...
-
C#で別スレッドの終了を知りたい
-
ftp 同時複数接続の負荷テスト...
-
ブラウザを閉じた後のサーバ側...
-
javaのプログラムが止まる
-
[Java] while(true)の意味
おすすめ情報