このブログを検索

2019年5月31日金曜日

Java入門教室 Chapter10「図形を描こう」①直線の始点終点を 入力する様に改造しました。

「Java入門教室」

Chapter10「図形を描こう」
 色を指定して 図形を描くプログラム。

 サンプルプログラムを少しだけ加工して、
 始点・終点の数値を入力して、
 直線を引くように 変えてみました。

 ここでも 何回も 表示・入力をするのではなく、
 
 startXをフィールドで作成

 startX = inputN("始点 X点は? (20 ~ 380 までの数値で)");
  ↓
 public static int inputN(String txt) throws IOException
     で戻り値の型 メソッド名 引数リストを定義
  ↓
 System.out.println(txt); でtxt内容を表示
  ↓
 returnで startX に返す。
 
 この「Java入門教室」に記載してあったメソッドが本当に便利。

 次は直線の色を選択できるようにしてみよう。

 
⭐️Sample1007を 少し変えてみました。

import java.awt.*;

import java.awt.event.*;
import java.io.*;

class Line
{
    public static void main(String[] args) throws IOException
    {
        MyWindow mw = new MyWindow();
    }
}

class MyWindow extends Frame
{
    //フィールドの作成
    static int startX;  //クラス変数 始点X
    static int startY;  //クラス変数 始点Y
    static int endX;    //クラス変数 終点X
    static int endY;    //クラス変数 終点Y
    
    MyWindow() throws IOException          //コンストラクタ
    {
        System.out.println("直線を引きます。始点と終点を入力して下さい。");
        startX = inputN("始点 X点は? (20 ~ 380 までの数値で)"); //引数を与えて input()メソッドを呼び出す。
        startY = inputN("始点 Y点は? (20 ~ 380 までの数値で)");
        endX = inputN("終点 X点は? (20 ~ 380 までの数値で)");
        endY = inputN("終点 Y点は? (20 ~ 380 までの数値で)");
        setTitle("図形を描く");
        setSize(400, 400);
        setVisible(true);
        addWindowListener(new WinListener());
    }
    public void paint(Graphics g)
    {
        g.setColor(Color.GREEN);
        g.drawLine(startX, startY, endX, endY);
    }
    public static int inputN(String txt) throws IOException //start end の数値の入力
    {
        System.out.println(txt); //引数 txt の表示
        
        BufferedReader br =
         new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int n;                           //try~catch外でも 変数nを使用したい為
        try{                             //数値以外が入力された際の例外処理
            n = Integer.parseInt(str);
        }
        catch(Exception e)
        {
            System.out.println("数値以外が入力されました。"); //数値以外の際 200をnに代入
            n = 200;
        }
        
        int num = 200;           //初期値は200
        if(n >= 20 && n <= 380) num = n; //入力した数値が 20~380の範囲内であるのか確認
        return num;
    }
}

class WinListener extends WindowAdapter
{
    public void windowClosing(WindowEvent e)
    {
        System.out.println("終了します。");
        System.exit(0);
    }
}

今日の教訓
 色を 変えるには どうすればいいのかな。。。

2019年5月28日火曜日

アホ男子のための 作文補助の プログラム (作成中) ①

「Java入門教室」 Sample0905 を 改造した自作プログラム。

 「アホ男子のための 作文補助の プログラム」

 親が作文のお手伝いをする プログラム。
 いつ、どこで、だれが、なにを、どのように、どうした。
 を入力して、
 文章にするもの。
 (うちの アホ男子くんは 自分で 入力できないので あくまでも 親が入力)

  パクった部分。
  入力を受け付ける メソッドにtxt文を出力し、
  入力した文章(String)を返しています。

//小学生 低学年レベルの作文補助プログラムを作ろう!!
//内容は
//
//5W1H1D を入力(親等が)
//who(だれが)when(いつ)、where(どこで)、what(なにを)、why(なぜ)、How(どのように)do(なにをした)
//①いつ→②どこで→③だれが→④なにを→⑤どのように→⑥どうした
//when「昨日」where「三階の教室で」who「僕が」what「消しゴムを」 why How「力いっぱい」 do「窓から投げた」
//この単語を入力して GUIで出力する (初期段階では テキスト出力)
//


import java.io.*;

class Sakubun
{
    static String itsu; //クラス変数 いつ
    static String dokode; //クラス変数 どこで
    static String darega; //クラス変数 誰が
    static String naniwo; //クラス変数 何を
    static String dono; //クラス変数 どの様に
    static String dousita; //クラス変数 どうした
    
    public static void main(String[] args) throws IOException
    {
        sakubunInput(); //作文内容の入力
    }
    public static void sakubunInput() throws IOException
    {
        itsu = input("\n" + "いつ おこった事 ?" + "\n" + "  例) 今日の午後" + "\n");
        dokode = input("\n" + "どこで 起きたのかな ?" + "\n" + "  例) 学校の教室で" + "\n");
        darega = input("\n" + "だれの お話し ?" + "\n" + "  例) 友だちの ボーズくんが" + "\n");
        naniwo = input("\n" + "なにを(なにを しようとしたの) ?" + "\n" + "  例) オナラをしようとして" + "\n");
        dono = input("\n" + "どのような 感じだったのかな ?" + "\n" + "  例) 力いっぱい" + "\n");
        dousita = input("\n" + "その人は 何をしたのかな ?" + "\n" + "  例) ウンコをした。" + "\n");
        
        System.out.print("\n" + "\n" + itsu + "\n" + dokode + "\n" + darega + "\n"
                    + naniwo + "\n" + dono + "\n" + dousita + "\n" + "\n"); //とりあえず 画面に出力
        System.out.println("さて、あなたは どのように 感じましたか。" + "\n" +
                           "感じた通り 書いてみましょう!!" + "\n");
    }
    public static String input(String txt) throws IOException
    {
        System.out.println(txt);
        
        BufferedReader br =
         new BufferedReader(new InputStreamReader(System.in));
        
        String str1 = br.readLine();
        return str1;
    }
}


 まだまだ、完成ではないので とりあえずここまで。
 最後の 感想文も 入力して 文章にしよう。
 例外処理もしてないしね。

今日の教訓
 このプログラムを もっと 修正しよう。

2019年5月27日月曜日

Java入門教室 Chapter9「メソッドを定義する」

「Java入門教室」

Chapter9「メソッドを定義する」
 消費税の計算。 
 フィールドを作成して、
 calcTax() メソッドで計算をして、表示する。
 この際、何回も 表示・入力をするのではなく、
 
 zeiritsu = input("消費税の税率は?")
  ↓
 public static int input(String txt) で 戻り値の型 メソッド名 引数リストを定義
  ↓
 System.out.println(txt); でtxt内容を表示
  ↓
 return Integer.parseInt(str); でzeiritu に返す。
 
 これは すごく便利。

 このプログラムをパクって
 自作プログラムを作ってみよう。

今日の教訓
 小学生のための 作文プログラムを作ってみよう。

2019年5月20日月曜日

やさしいjava 6版 Lesson12〜16

この一週間で勉強出来た事のまとめ。

やさしいjava 6版

 Lesson12〜16
抽象クラス・ファイルの分割・例外と入出力処理・スレッド・GUI

今日の教訓
 今まで 抽象クラスの事が 全く理解出来なかったけど、
 便利さが理解出来ました。

2019年5月11日土曜日

やさしいjava 6版 Lesson10〜11 サブクラス、スーパクラス。

やさしいjava 6版

 Lesson10〜11
サブクラス、スーパクラス。
もっと、具体的なサンプルを探してみよう。

今日の教訓
 そろそろ、スクールに申し込んでみよう。