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);
}
}
今日の教訓
色を 変えるには どうすればいいのかな。。。