作業記録 2002 -0827 ver 0.00 第1草稿,書き込み中 -08xx ver 1.00 発行予定 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃.&&&& **** %%%%.  JavaScript&Javaで目指そう!基本情報技術者試験  ┃ ┃&&&&&&******%%%%%%  執筆&編集 斎藤末広 suehiro@he.mirai.ne.jp  ┃ ┃'&┃&''*┃*''%┃%'  発行    江口昌宏 jmaga@yscon.co.jp    ┃ ┗━┻━━┻━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ★解除・登録 :http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ★広告募集  :http://www2.odn.ne.jp/~egu33/jmaga/jmaga-ad.html ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  第26号 2002/08/2x  GUI 部品 Checkbox(チェックボックス) と CheckboxGroup(チェックボックス グループ) ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  プログラムを作成する上での注意事項:  Windows98SE, SDK(JDK) 1.3.1,IE 5.5 を前提としています。  拡張子を表示するに設定してください。 ------------------------------------------------------------------------ ▼ Checkbox(チェックボックス) と CheckboxGroup(チェックボックスグループ)  チェックを入れて,選択するような GUI部品に Checkbox(チェックボックス) があります。VisualBasic では,オプションボタンとラジオボタンにあたります。  Java では,Checkbox を単純に扱うとオプションボタンになり,グループ化す ることで,ラジオボタンになります。グループ化するときに使用するのが, CheckboxGroup です。 ------------------------------------------------------------------------ ▼Checkbox(チェックボックス)サンプル  xSmpGUI41 を元にして,Checkbox のサンプルを作成しましょう。  まず,xSmpGUI14.java をみましょう。 xSmpGUI041.java ソース http://www.yscon.co.jp/j/java/jmaga/j24/xSmpGUI041.java 動作  http://www.yscon.co.jp/j/java/jmaga/j24/xSmpGUI041.htm 1: import java.applet.Applet; 2: import java.awt.Button; // 1)ボタンの見た目を作る 3: import java.awt.event.ActionEvent; // 2)ボタンの動きを感じる 4: import java.awt.event.ActionListener; // 3)押されたときに仕事をする 5: import java.awt.Label; 6: 7: public class xSmpGUI041 extends Applet{ 8: 9: Button xbt01 = new Button("行きの挨拶"); // 表ボタン生成 10: Button xbt02 = new Button("帰りの挨拶"); 11: 12: Label xlbl = new Label("漢234567"); 13: 14: class xButtonAdapter implements ActionListener{ 15: public void actionPerformed(ActionEvent xbs){ 16: if (xbs.getSource() == xbt01){ 17: xlbl.setText("行ってらっしゃい"); //ボタン01の仕事 18: } 19: if (xbs.getSource() == xbt02){ 20: xlbl.setText("お帰りなさい"); //ボタン02の仕事 21: } 22: } 23: } 24: 25: xButtonAdapter xia = new xButtonAdapter(); //ボタン係生成 26: 27: public void init(){ 28: 29: add(xbt01); //表ボタンを本体プログラムの画面に貼付 30: add(xbt02); 31: 32: xbt01.addActionListener(xia); 33: xbt02.addActionListener(xia); 34: 35: add(xlbl); 36: } 37: }  このプログラムを変形して,ボタンを押したら,Checkbox の選択に従って, 挨拶文にオプション(一言添える)をつけるプログラムにしましょう。 例 j26-01 xSmpGUI08.java GUI部品 Checkbox(チェックボックス) ソース http://www.yscon.co.jp/j/java/jmaga/j26/xSmpGUI08.java 動作  http://www.yscon.co.jp/j/java/jmaga/j26/xSmpGUI08.htm 1: import java.applet.Applet; 2: import java.awt.Button; 3: import java.awt.event.ActionEvent; 4: import java.awt.event.ActionListener; 5: import java.awt.Label; 6: 7: import java.awt.Checkbox; 8: 9: public class xSmpGUI08 extends Applet{ 10: 11: Button xbt01 = new Button("行きの挨拶"); 12: Button xbt02 = new Button("帰りの挨拶"); 13: 14: Checkbox xchb = new Checkbox("一言添える",null, true); // 1) 生成 15: 16: Label xlbl = new Label("漢23456789012345"); 17: 18: class xButtonAdapter implements ActionListener{ 19: public void actionPerformed(ActionEvent xbs){ 20: //ボタン01の仕事 21: if (xbs.getSource() == xbt01){ 22: if (xchb.getState()){ // 3) 値の取得 23: xlbl.setText("気を付けて,行ってらっしゃい。"); 24: }else{ 25: xlbl.setText("行ってらっしゃい。"); 26: } 27: } 28: //ボタン02の仕事 29: if (xbs.getSource() == xbt02){ 30: if (xchb.getState()){ // 3) 値の取得 31: xlbl.setText("お帰りなさい。お風呂が先?"); 32: }else { 33: xlbl.setText("お帰りなさい。"); 34: } 35: } 36: } 37: } 38: 39: xButtonAdapter xia = new xButtonAdapter(); 40: 41: public void init(){ 42: 43: add(xbt01); 44: add(xbt02); 45: 46: xbt01.addActionListener(xia); 47: xbt02.addActionListener(xia); 48: 49: add(xchb); // 2) 表示 50: 51: add(xlbl); 52: } 53: } ------------------------------------------------------------------------ ▼Checkbox(チェックボックス)の使い方  使い方は,今までの GUI 部品とほぼ同じです。 1) 生成  Checkbox xchb = new Checkbox("一言添える", null, true); 2) 表示  add(xchb); 3) 値の取得  if (xchb.getState()){  で,true か false か値を調べることができます。チェックされていたら, true ,されていなければ,false となります。 ------------------------------------------------------------------------ ▼ラジオボタンの実現  昔のカーラジオは,ボタンでラジオ局を選局しました。ボタンを押すと,その 局を示すボタンが沈み,他のボタンを浮きました。こういった,複数の選択肢の 中から,一つを選ぶと他がオフになるボタンの形式を,ラジオボタンといいます。  チェックボックスで,ラジオボタンを作るには,複数のチェックボックスを グループ化して,そのグループの中で,一つを選ぶと他がオフとなるようにする 必要があります。  Java では,そのグループ化を CheckboxGroup(チェックボックスグループ) を 利用して実現します。  性別に従って,トイレの場所を案内するプログラムを作成します。性別のグルー プは,xseibetu とします。xSmpGUI08 を変更して作成しました。 例 j26-02 xSmpGUI09.java GUI部品 ラジオボタン(Checkbox使用) ソース http://www.yscon.co.jp/j/java/jmaga/j26/xSmpGUI09.java 動作  http://www.yscon.co.jp/j/java/jmaga/j26/xSmpGUI09.htm 1: import java.applet.Applet; 2: import java.awt.Button; 3: import java.awt.event.ActionEvent; 4: import java.awt.event.ActionListener; 5: import java.awt.Label; 6: 7: import java.awt.CheckboxGroup; 8: import java.awt.Checkbox; 9: 10: public class xSmpGUI09 extends Applet{ 11: 12: Button xbt = new Button("お手洗いの場所"); 13: 14: CheckboxGroup xseibetu = new CheckboxGroup(); // 1) グループ名の決定(生成) 15: 16: Checkbox xchb01 = new Checkbox("男性",xseibetu, true); // 2) グループ化 17: Checkbox xchb02 = new Checkbox("女性",xseibetu, false); 18: 19: Label xlbl = new Label("漢23456789012345"); 20: 21: class xButtonAdapter implements ActionListener{ 22: public void actionPerformed(ActionEvent xbs){ 23: if (xchb01.getState()){ 24: xlbl.setText("男性用は,あちらです。"); 25: }else{ 26: xlbl.setText("女性用は,こちらです。"); 27: } 28: } 29: } 30: 31: xButtonAdapter xia = new xButtonAdapter(); 32: 33: public void init(){ 34: 35: add(xbt); 36: 37: xbt.addActionListener(xia); 38: 39: add(xchb01); 40: add(xchb02); 41: 42: add(xlbl); 43: } 44: } ------------------------------------------------------------------------ ▼Checkbox(チェックボックス)の使い方  CheckboxGroup(チェックボックスグループ)を使うには,1)グループ名の決定, と Checkbox を 2) どのグループに属するか を決定します。 1) グループ名の決定(生成)  CheckboxGroup xseibetu = new CheckboxGroup();  xseibetu というグループ名を決めます。この xseibetu インスタンスが,そ のグループのチェックのON/OFFを管理します。 2) グループ化  Checkbox xchb01 = new Checkbox("男性",xseibetu, true);  Checkbox xchb02 = new Checkbox("女性",xseibetu, false);  Checkbox の生成時にその Checkbox がどこの属するか,そして,最初は どれを on としておくか Checkbox 生成時に決めます。  サンプルでは,男性を選ぶと自動的に女性がオフになり,また,女性を選ぶと 自動的に男性がオフとなります。 ------------------------------------------------------------------------ ▼ 参考  Checkbox の親クラスは,Component クラスです。第25号で紹介した,文字と バックカラーの色を変更するなどができます。 Component  Checkbox  CheckboxGroup の詳細は,以下で確認できます。 Component  http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Component.html Checkbox  http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Checkbox.html CheckboxGroup  http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/CheckboxGroup.html ------------------------------------------------------------------------ ▼ 練習問題 練習1  xSmpGUI09.java と xSmpGUI09.htm をコピーして,それぞれ,xRenGUI09.java と,xRenGUI09.htm とします。チェックボタンを3つ,ボタンを1つ,ラ ベルを1つ表示させます。チェックボタンは,それぞれ,「朝」「昼」「夜」と 表示します。コマンドボタンを押したら,ラベルに,「おはよう」「こんにちは」 「こんばんは」と選択したチェックボタンに従って,表示します。グループ化も する必要があります。 練習2  xSmpGUI09.java と xSmpGUI09.htm をコピーして,それぞれ,xRenGUI091.java と xRemGUI091.htm とします。  メイングループ,付け合わせグループ,ドリンクグループと3つグループを 作成し,メイングループは,チキンカツ,ポークショウガ焼き,ビーフステーキ で,値段はそれぞれ,500円,700円,1000円。付け合わせは,ポテト,オニオン, ビーンで,それぞれ,120円,150円,160円。ドリンクグループは,ブレンドコーヒ, エクスプレッソ,ウーロン茶で,値段は,80円,90円,100円とします。  それぞれのグループから一つずつ選択する画面を作成して,コマンドボタンを 押したら,合計の値段をラベルに表示しなさい。 ------------------------------------------------------------------------ ▼ 次号の予定  次号は,レイアウトとパネルです。  感想は,斎藤まで,suehiro@he.mirai.ne.jp  広告等のお問い合わせ:jmaga@yscon.co.jp ------------------------------------------------------------------------ ▼ 誤字・脱字等の修正,プログラムの修正など,以下の場所で確認できます。 Jmaga情報  http://www.yscon.co.jp/j/java/jmaga/ 登録・削除および広告の案内  http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ------------------------------------------------------------------------ ▼ 著作権について  このメールマガジンで公開しているプログラムソースは,著作権を当方スタッ フが所有しますが,商用を含めて,再利用,改変,発表を制限しません。  本文に関しては,斎藤末広が著作権を所有します。再利用に関しては,承諾を 必要とします。 広告募集 http://www2.odn.ne.jp/~egu33/jmaga/jmaga-ad.html ------------------------------------------------------------------------ ▼アンケート(以下を返信してください)  この号のJマガに対するご意見をお待ちしてます。ぜひ,ご返信下さい。 内容のレベルは 1 難しいのでもっと簡単にしてほしい 2 ちょうどよい 3 もっと難しくてもよい その他ご要望