このブログを検索

2019年4月23日火曜日

Java入門教室 Chapter10-3「ウインドウを別クラスにする 」コンストラクタに引数・カプセル化

「Java入門教室」
「Chapter10-2「AWTでウインドウを作る 」
まず このサンプルプログラムを少し変えてみました。
<BufferedReader を用いてキーボードからウインドウのサイズを入力>

🌟サンプルプログラム

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

class Sample2
{
    public static void main(String[] args) throws IOException
    {
        System.out.println("ウインドウのサイズを入力して下さい。(X座標、Y座標)");
        
        BufferedReader br =
         new BufferedReader(new InputStreamReader(System.in));
        
        String str1 = br.readLine();
        String str2 = br.readLine();
        
        int wx = Integer.parseInt(str1);
        int wy = Integer.parseInt(str2);
        
        Frame fr = new Frame();
        fr.setTitle("終了出来るウインドウ");
        fr.setSize(wx, wy);
        fr.setVisible(true);
        fr.addWindowListener(new addWinListener());
    }
}

class addWinListener extends WindowAdapter
{
    public void windowClosing(WindowEvent e)
    {
        System.exit(0);
    }

}

結果
 入力したサイズでウインドウの製作が出来ました!!


Chapter10-3「ウインドウを別クラスにする 」
また このサンプルプログラムを少し変えてみました。
<BufferedReader を用いてキーボードからウインドウのサイズを入力>
<引数を持つコンストラクタを呼び出し>
<MyWindowクラスのカプセル化>


🌟サンプルプログラム

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

class Sample3
{
    public static void main(String[] args) throws IOException
    {
        System.out.println("ウインドウのサイズを入力して下さい(X,Y座標共に 200~800)。");
        
        BufferedReader br =
         new BufferedReader(new InputStreamReader(System.in));
        
        String str1 = br.readLine();
        String str2 = br.readLine();
        
        int px = Integer.parseInt(str1);
        int py = Integer.parseInt(str2);
        
        MyWindow mw = new MyWindow(px, py); //オブジェクトの作成・コンストラクタの呼び出し
    }
}

// MyWindowクラス
class MyWindow extends Frame
{
    private int x;
    private int y;
    
    MyWindow(int px, int py) //引数を持つコンストラクタの記述
    {
        if(px>=200 && px<=800) x = px; else x = 600;
        if(py>=200 && py<=800) y = px; else y = 600;

        setTitle("ウインドウを別のクラスにする");
        setSize(x, y);
        setVisible(true);
        addWindowListener(new WinListener());
    }
}

class WinListener extends WindowAdapter
{
    public void windowClosing(WindowEvent e)
    {
        System.exit(0);
    }

}

結果
 何だか珍しく ちゃんと改造できました。

今日の教訓
 ちゃんと動くと 気持ちいい。

0 件のコメント:

コメントを投稿