課題詳細
Report#7INDEXへ戻ります?
課題1 偶数奇数判定プログラム(GUIaa)をタイプし、その動作を考察せよ。
作成したソース(改良版)import java.awt.*; import java.awt.event.*; /*GUI関係のパッケージをインポート*/ public class GUIaa extends Frame { Button b0 = new Button("さあDOTCH?"); Label x0 = new Label("適当な数字を入力!あーんどボタンPUSH!!"); Label x1 = new Label(); TextField t0 = new TextField(); public GUIaa() { setLayout(null); add(t0); t0.setBounds(10,40,90,30); add(b0); b0.setBounds(110,40,100,30); add(x0); x0.setBounds(10,80,200,30); add(x1); x1.setBounds(10,20,200,30); /*上で生成したオブジェクト群の場所を定義。 (x座標, y座標, 横幅, 縦幅)*/ /*setLayout(null);が無かったら、 上のオブジェクト群の場所が自動的に設定される。*/ b0.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { int i = (new Integer(t0.getText())).intValue(); t0.setText(""); if(i % 2.0 == 0) { x1.setText(i + " は偶数です!!"); } else { x1.setText(i + " は奇数です!!"); } } }); } public static void main(String args[]) { Frame win = new GUIaa(); win.setSize(300,100); /*表示するウィンドウの大きさを指定。*/ win.setVisible(true); /*ウィンドウをディスプレイに表示するために必要。*/ win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); } } | |
出力結果 ※画像クリックすると大きくなります。 | |
→ | |
→ |
Button b0 = new Button("さあDOTCH?"); |
Label x0 = new Label("適当な〜PUSH!!"); |
Label x1 = new Label(); |
TextField t0 = new TextField(); |
オブジェクト名.setBounds(x,y,a,b); |
オブジェクト名.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { 指定したい処理の方法 } }); |
win.addWindowListener(new ActionListener() { public void windowClosing(WindowEvent evt) { ウィンドウを閉じる時にしたい処理の方法 } }); |
INDEXへ戻ります?
課題2 例外処理について、考察せよ。
例外処理とは?try { 例外が起こりうるソースの記述 } catch (catchステートメント 受け取る変数名) { 例外処理の方法を示すメソッドなど } ・ |
import java.awt.*; import java.awt.event.*; /*GUI関係のパッケージをインポート*/ public class GUIaa1 extends Frame { Button b0 = new Button("さあDOTCH"); Label x0 = new Label("適当な数字を入力!あーんどボタンPUSH!!"); Label x1 = new Label(); TextField t0 = new TextField(); public GUIaa1() { setLayout(null); add(t0); t0.setBounds(10,40,90,30); add(b0); b0.setBounds(110,40,100,30); add(x0); x0.setBounds(10,80,200,30); add(x1); x1.setBounds(10,20,200,30); /*上で生成したオブジェクト群の場所を定義。 (x座標, y座標, 横幅, 縦幅)。 setLayout(null);が無かったら、 上のオブジェクト群の場所が自動的に設定される。*/ b0.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { try { int i = (new Integer(t0.getText())).intValue(); if(i % 2 == 0) { x1.setText(i + " は偶数です!!"); } else { x1.setText(i + " は奇数です!!"); } } catch (NumberFormatException ex) { x1.setText("数字入力しろや(゚Д゚ )ゴルァ!!"); } } }); } public static void main(String args[]) { Frame win = new GUIaa(); win.setSize(300,100); /*表示するウィンドウの大きさを指定。*/ win.setVisible(true); /*ウィンドウをディスプレイに表示するために必要。*/ win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); } } | |
変更前(※画像クリックででかくなります。) | |
→ | |
変更後(※画像クリックででかくなります。) | |
→ |
INDEXへ戻ります?
課題3 上述のサンプルプログラムに出てきたGUI部品を、全て使ったプログラムを作成せよ。
作成したソースimport java.awt.*; import java.awt.event.*; public class GUI1b extends Frame { String a,b,c,e,f,g,i,j,k,l,n; String d = "ちゃんと"; String m = "選択しろや"; String h = "(#゚Д゚)ゴルァ!!"; int re,gr,wh; Color co_re = new Color(200,0,0); Color co_gr = new Color(0,200,0); Color co_wh = new Color(250,250,250); Label t0 = new Label("日本語→英語にします。"); Label t1 = new Label("↓↓↓"); Checkbox o0 = new Checkbox("Red?"); Checkbox o1 = new Checkbox("Green?"); Choice c0 = new Choice(); Choice c1 = new Choice(); Choice c2 = new Choice(); Button b0 = new Button("GO!!"); TextField f0 = new TextField(); List l0 = new List(); public GUI1b() { setLayout(null); add (t0); t0.setBounds(10,40,60,30); add (o0); o0.setBounds(180,35,60,30); o0.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { re = evt.getStateChange(); if ( re == 1) { t0.setBackground(co_re); } else { t0.setBackground(co_wh); } } }); add (o1); o1.setBounds(250,35,80,30); o1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { gr = evt.getStateChange(); if ( gr == 1 ) { t0.setBackground(co_gr); } else { t0.setBackground(co_wh); } } }); add (c0); c0.setBounds(10,70,100,30); c0.add("私は"); a = "私は"; c0.add("彼は"); b = "彼は"; c0.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { c = c0.getSelectedItem(); if ( c == a ) { d = "I "; } else if ( c == b ) { d = "He "; } } }); add (c1); c1.setBounds(120,70,100,30); c1.add("あなたが"); e = "あなたが"; c1.add("Javaが"); f = "Javaが"; c1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { g = c1.getSelectedItem(); if ( g == e ) { h = "you."; } else if ( g == f ) { h = "Java."; } } }); add (c2); c2.setBounds(230,70,100,30); c2.add("嫌いです。"); i = "嫌いです。"; c2.add("好きです。"); j = "好きです。"; c2.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { k = c2.getSelectedItem(); if ( k == i ) { m = "hate "; } else if ( k == j ) { m = "love "; } } }); add (b0); b0.setBounds(130,140,100,30); b0.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { n = d + m + h; f0.setText(n); } }); add (t1); t1.setBounds(160,180,60,50); add (f0); f0.setBounds(10,200,330,70); add (l0); l0.setBounds(270,300,60,40); l0.add("も"); l0.add("う"); l0.add("馬太"); l0.add("目"); l0.add("ぽ"); l0.add("〜"); l0.add("(´Д⊂"); } public static void main(String args[]) { Frame win = new GUI1b(); win.setSize(350,350); win.setVisible(true); win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); } } |
INDEXへ戻ります?
課題4 摂氏から華氏、華氏から摂氏への温度換算ができるプログラムを作成せよ。
作成したソースimport java.awt.*; import java.awt.event.*; public class Temp extends Frame { int a; String k,l,m,n,o; TextField t0 = new TextField(); Label l0 = new Label("調べたい温度を入力...."); TextField t1 = new TextField(); Label l1 = new Label("変換結果....."); Choice c0 = new Choice(); Button b0 = new Button("変換します。"); public Temp() { setLayout(null); add (t0); t0.setBounds(10,30,200,40); add (l0); l0.setBounds(10,80,80,50); add (c0); c0.setBounds(120,100,150,40); c0.add("摂氏 → 華氏"); k = "摂氏 → 華氏"; c0.add("華氏 → 摂氏"); l = "華氏 → 摂氏"; c0.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { m = c0.getSelectedItem(); if ( m == k ) { a = 1; } else if ( m == l ) { a = 0; } } }); add (b0); b0.setBounds(120,150,150,40); b0.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { if ( a == 1 ) { try { int b = (new Integer(t0.getText())).intValue(); double c = (b*1.8+32); t1.setText("" + c ); }catch(Exception ex) { t1.setText("問題発生。\n考えられる問題。\n1.数字を入力していない。\n2.摂氏 → 華氏のボタンを選択していない。"); } } else if ( a == 0 ) { try { int b = (new Integer(t0.getText())).intValue(); double c = (b-32)/1.8; t1.setText(""+ c ); }catch(Exception ex) { t1.setText("問題発生。\n考えられる問題。\n1.数字を入力していない。\n2.摂氏 → 華氏のボタンを選択していない。"); } } } }); add (l1); l1.setBounds(180,200,80,40); add (t1); t1.setBounds(180,230,200,40); } public static void main(String args[]) { Frame win = new Temp(); win.setSize(400,290); win.setVisible(true); win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); } } |
INDEXへ戻ります?
課題5 「電卓」プログラム。中身は自分の思うように。
作成したソースimport java.awt.*; import java.awt.event.*; public class Cal extends Frame { int a; String k,l,m,n,o; TextField t0 = new TextField(); TextField t1 = new TextField(); Label l0 = new Label("result..."); Label l1 = new Label(); Choice c0 = new Choice(); Button b0 = new Button(" = "); public Cal() { setLayout(null); add (t0); t0.setBounds(10,30,50,40); add (c0); c0.setBounds(70,30,50,40); c0.add(" + "); k = " + "; c0.add(" ー "); l = " ー "; c0.add(" × "); m = " × "; c0.add(" ÷ "); n = " ÷ "; c0.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent evt) { o = c0.getSelectedItem(); if ( o == k ) { a = 1; } else if ( o == l ) { a = 2; } else if ( o == m ) { a = 3; } else if ( o == n ) { a = 4; } } }); add (t1); t1.setBounds(150,30,50,40); add (b0); b0.setBounds(210,30,50,40); b0.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { if ( a == 1 ) { try { int b = (new Integer(t0.getText())).intValue(); int c = (new Integer(t1.getText())).intValue(); double d = b + c; l0.setText("" + d); l1.setText("カンペキネ申..._〆(゚▽゚*)"); }catch(Exception ex) { l0.setText(""); l1.setText("Error....\n1.数字を入力してくらさい。\n2.演算の方法を選んでくらさい。"); } } else if ( a == 2 ) { try { int b = (new Integer(t0.getText())).intValue(); int c = (new Integer(t1.getText())).intValue(); double d = b - c; l0.setText("" + d); l1.setText("カンペキネ申..._〆(゚▽゚*)"); }catch(Exception ex) { l0.setText(""); l1.setText("Error....\n1.数字を入力してくらさい。\n2.演算の方法を選んでくらさい。"); } } else if ( a == 3 ) { try { int b = (new Integer(t0.getText())).intValue(); int c = (new Integer(t1.getText())).intValue(); double d = b * c; l0.setText("" + d); l1.setText("カンペキネ申..._〆(゚▽゚*)"); }catch(Exception ex) { l0.setText(""); l1.setText("Error....\n1.数字を入力してくらさい。\n2.演算の方法を選んでくらさい。"); } } else if ( a == 4 ) { try { int b = (new Integer(t0.getText())).intValue(); int c = (new Integer(t1.getText())).intValue(); double d = b / c; l0.setText("" + d); l1.setText("カンペキネ申..._〆(゚▽゚*)"); }catch(Exception ex) { l0.setText(""); l1.setText("Error....\n1.数字を入力してくらさい。\n2.演算の方法を選んでくらさい。"); } } else { l1.setText("Error....\n1.数字を入力してくらさい。\n2.演算の方法を選んでくらさい。"); } } }); add (l0); l0.setBounds(270,30,50,40); add (l1); l1.setBounds(10,70,330,100); } public static void main(String args[]) { Frame win = new Cal(); win.setSize(330,120); win.setVisible(true); win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); } } |
INDEXへ戻ります?
感想
今回は非常に時間がかかってしまい、とても申し訳ないと思いました。INDEXへ戻ります?
参考文献など
独習Java 第2版INDEXへ戻ります?