このブログを検索

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);
    }
}

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

0 件のコメント:

コメントを投稿