上の絵と似ていない月と雪ダルマが描かれた絵を描くプログラム Kadai1126.javaを「~/java」以下に作りなさい. プログラムはマウス入力と,キー入力を受け付け,キー'q' を押すと正常終了,マウスのボタンをクリックすると,表示されるものが何か 変わるようにしてください.
プログラムがちゃんと動くことを確かめたら,
/home/ktanaka/bin/report1126 1を実行して,'q'を押して正常終了すること.このプログラムは,~ /java/Kadai1126.javaの有無,コンパイル,実行できるかどうかなどをチェッ クする.なお,自分の名前,学生証番号,プログラムに関する説明を Kadai1126.java の先頭にコメントとして入れること.
なお,今回のチェックプログラムは,すでに提出した他の人のプログラムと 比較して,最も似ているプログラムとの類似度を表示するようにしている.ヒ ントを参考にした場合は,関係のないプログラムとでも高い類似度が出ること があるので,身に覚えがなければ心配することはない.
// 名前:
// 学生証番号:
// 説明
// AWTを使うので java.awt.*を import する
import java.awt.*;
// イベント駆動関係のクラスを用いるため
import java.awt.event.*;
// 独立したウィンドウを開くので,Frameクラスのサブクラスにする
class Kadai1126 extends Frame{
// この中で, 表示する際に必要なインスタンス変数を宣言しておく
// int x=100,y=100;
public Kadai1126(String title){
super(title);
// GUI部品と,Event Listenerを関連づける
// KeyAdapterは,KeyListenerを実装して中身は何もないクラス
// new クラス名(){} で,「クラス名」の名前のない子クラスを定義すると同時に
// インスタンスを作る
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
int key=e.getKeyChar();
System.out.println("keyPressed("+e+","+key+")");
if(key=='q') System.exit(0);
}
});
// マウスが押された際に
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
int mx=e.getX(),my=e.getY();
// デバッグ用の表示
System.out.println("mousePressed("+e+","+mx+","+my+")");
// ここで表示のためのインスタンス変数を書き換えるコードを書く
// x=mx; y=my;
repaint();
}
});
}
public static void main(String[] args){
Kadai1126 frame=new Kadai1126("Kadai1126");
frame.setSize(400,400);
frame.setVisible(true);
}
public void paint(Graphics g){
// インスタンス変数にしたがって描画するコードを書く
// g.setColor(Color.white);
// g.fillRect(0,0,400,400);
// g.setColor(Color.gray);
// g.fillOval(x,y,100,100);
}
}