課題 (01:ベーシック)

作業について

今回の課題は以下のパッケージに作成してください。

パッケージの名前
j1.lesson01

作成するクラスの名前は問題ごとに指示があります。下記を参照してください

課題の提出方法については下記を参照してください。また、オンラインで提出できる課題は何度でも最新のものを提出できます。途中の状態でも提出していけば、何かアドバイスがもらえるかもしれません。

また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。

問題

教材フレームワークの導入

教材フレームワークを導入するを参考に、Eclipseに教材フレームワークを導入してください。

スプレッドシート

作成するクラスの名前
FirstSpreadsheet

以下の手順に従って、スプレッドシートを利用してみましょう。

クラスを作成したら次のような骨組みを作成します。これまでの教材との違いは、プログラムの先頭に「import gpjava.Spreadsheet;」というスプレッドシートを利用するための1行を追加し、さらにvoid start() {…}の先頭で「Spreadsheet.show();」という、スプレッドシートを画面上に表示する命令を書いています。この時点でスプレッドシートを画面に表示するプログラムになっていますので、この状態でプログラムを実行してみて下さい。

package j1.lesson01;

import gpjava.Spreadsheet;

import javax.swing.JOptionPane;

public class FirstSpreadsheet {

    public static void main(String[] args) {
        new FirstSpreadsheet().start();
    }

    void start() {
        Spreadsheet.show();
        
    }
}

スプレッドシートのウィンドウが表示されたと思います。プログラムを終了するには、スプレッドシートの右上の×ボタンを押すか、メニューバーから「ファイル」「終了」を選択して下さい。

もう少しだけプログラムを書き換えて、スプレッドシート上にメッセージを表示してみましょう。スプレッドシートでメッセージを表示するには、「JOptionPane.showMessageDialog」の代わりに「Spreadsheet.setString」という命令を使います。最初の「0, 0, 」という部分は表示する位置を指定していて、0, 0では左上のマスに内容が表示されます。最後の「input」は「JOptionPane.showMessageDialog」のときと同じで、表示するメッセージを指定しています。

void start() {
    Spreadsheet.show();
    String input = JOptionPane.showInputDialog("メッセージをどうぞ");
    Spreadsheet.setString(0, 0, input);
}

これを実行すると、次のような画面が表示されます。「0, 0」の部分や「input」の部分を書き換えて、様々なメッセージを表示してみましょう。

図: スプレッドシートの例

スプレッドシートのマスに文字列を表示するには、次のように書きます。ただし、一番左上のマスを0行目、0列目としています。

Spreadsheet.setString(<行番号>, <列番号>, <表示する文字列>);

また、「Spreadsheet.setString」の代わりに「Spreadsheet.setLine」という命令を使うと、1行に長い文字列を表示させることができます。

void start() {
    Spreadsheet.show();
    String input = JOptionPane.showInputDialog("メッセージをどうぞ");
    Spreadsheet.setLine(0, input);
}

こちらの命令では行全体を使うので、列番号の指定は行いません。次のような命令をプログラムに書いて試してみましょう。

Spreadsheet.setLine(<行番号>, <表示する文字列>);

キャンバス

作成するクラスの名前
FirstCanvas

以下の手順に従って、キャンバスを利用してみましょう。

クラスを作成したら、次のような骨組みを作成します。これまでの教材との違いは、プログラムの先頭に「import gpjava.Canvas;」というキャンバスを利用するための1行を追加し、さらにvoid start() {…}の先頭で「Canvas.show();」という、キャンバスを画面上に表示する命令を書いています。この時点でキャンバスを画面に表示するプログラムになっていますので、この状態でプログラムを実行してみて下さい。

package j1.lesson01;

import gpjava.Canvas;

import javax.swing.JOptionPane;

public class FirstCanvas {

    public static void main(String[] args) {
        new FirstCanvas().start();
    }

    void start() {
        Canvas.show();
        
    }
}

キャンバスのウィンドウと、その中に真っ白な描画領域だけが表示されます。このプログラムを終了するには、キャンバスの右上の×ボタンを押すか、メニューバーから「ファイル」「終了」を選択して下さい。

もう少しだけプログラムを書き換えて、キャンバス上に文字列を表示してみましょう。キャンバスでは「Canvas.drawString」という命令を使って文字列を表示できます。下記最初の「50, 50, 」という部分は表示する位置を指定していて、50, 50では左上から右(X軸方向)に50ピクセル、下(Y軸方向)に50ピクセルずれた位置から右に向かって文字を描画します。最後の「input」は表示するメッセージを指定しています。

void start() {
    Canvas.show();
    String input = JOptionPane.showInputDialog("メッセージをどうぞ");
    Canvas.drawString(50, 50, input);
}

これを実行すると、次のような画面が表示されます。「50, 50」の部分や「input」の部分を書き換えて、様々なメッセージを表示してみましょう。ただし、指定した「50, 50」の位置は表示する文字列の左下の点を指しています。そのため、Y軸方向にあまりに小さな値を設定すると、文字列が描画領域をはみ出してしまい、何も表示されていないように見える場合があります。

図: キャンバスの例

キャンバスは文字列の他にも、単純な線を引いたり円を描いたりと様々な描画を行えます。これらは次回以降に紹介します。

ベーシック

作成するクラスの名前
DoubleInput

最後に、スプレッドシートもキャンバスも使わない「ベーシック」教材の課題です。

下記のプログラムを変更して、次のような内容のメッセージダイアログを表示するプログラムを作成してください。

私の名前は(名前)です。趣味は(趣味)です。

ただし、(名前)、(趣味)と書いた部分にはそれぞれ入力された値が表示されるようにしてください。

package j1.lesson01;

import javax.swing.JOptionPane;

public class DoubleInput {

    public static void main(String[] args) {
        new DoubleInput().start();
    }

    void start() {
        String input1 = JOptionPane.showInputDialog("名前は?");
        String input2 = JOptionPane.showInputDialog("趣味は?");
        JOptionPane.showMessageDialog(null, input1 + input2);
    }
}