Report#8

課題


解答・考察

    プログラムソース

    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    
    public class Painter extends Applet{
       int px, py, rx, ry;
       int n = 0;
        Color c1 = new Color(25,25,25);
        Color c2 = new Color(39,38,114);
        Color c3 = new Color(229,0,30);
        Color c4 = new Color(51,96,69);
        Color c5 = new Color(229,169,0);
        Color c6 = new Color(248,169,0);
    
        Color color[] = {c1,c2,c3,c4,c5,c6};
    
        public void init(){
            addMouseListener(new MouseAdapter(){
                public void mousePressed(MouseEvent e){
                    px = e.getX();
                    py = e.getY();
                    rx = 0;
                    ry = 0;
                }
            });
    
            addMouseListener(new MouseAdapter(){
                public void mouseReleased(MouseEvent e){
                    rx = e.getX();
                    ry = e.getY();
                    px = 0;
                    py = 0;
                }
            });
    
            addMouseListener(new MouseAdapter(){
                public void mouseClicked(MouseEvent e){
                    Graphics g = getGraphics();
                    n++;
                    if(n > 5) n = 0;
                        switch(n){
                            case 0 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;黒",60,40); break;
                            case 1 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;藍",60,40); break;
                            case 2 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;深紅",60,40); break; 
                            case 3 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;深緑",60,40); break; 
                            case 4 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;柿色",60,40); break; 
                            case 5 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;山吹色",60,40); break;
                       }
                }
            });
    
            addMouseListener(new MouseAdapter(){
                public void mouseExited(MouseEvent e){
                    Graphics g = getGraphics();
                    n++;
                    if(n > 5) n = 0;
                        switch(n){
                            case 0 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;黒",60,40); break;
                            case 1 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;藍",60,40); break;
                            case 2 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;深紅",60,40); break; 
                            case 3 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;深緑",60,40); break; 
                            case 4 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;柿色",60,40); break; 
                            case 5 : g.clearRect(20, 30, 150, 20) ; 
                                                g.drawString("現在の色;山吹色",60,40); break;
                        }
                }
            });
    
            addMouseMotionListener(new MouseMotionAdapter(){
                public void mouseDragged(MouseEvent e){
                    Graphics g = getGraphics();
                    g.setColor(color[n]);
                    g.drawLine(px, py, e.getX(), e.getY());
                    px = e.getX();
                    py = e.getY();
                }
            });
        }
    
        public void paint(Graphics g){
            g.setColor(Color.black);
            g.drawString("お絵描きアプレット", 60, 20);
            g.drawRect(0, 0, 247, 247);
        }
    }
      

    実行結果


    考察

感想・反省

 今回は自分の好きなようにアプレットを作る、という事だったのだが何を作るか迷ってしまい時間がかかってしまった。色の変更をプルダウンメニューでやろうと思ったのだが何故か上手くいかなかったので急遽マウスクリックとアプレット外に出す事で色を変える、という方法にした。Javaの最終課題だったにも関わらず、ネットから拾ってきたプログラムをろくに改良も出来ず、こんなへぼいプログラムしか組めないあたりがちょっと勉強不足だなと思った。
 今期のプログラミング2で一番の反省点は、web上での提出、ということでかなり提出期限にルーズになってしまったことだ。来年はこんな事にならないよう頑張りたい。


ダウンロード (download)
神様がご降臨されること。

参考資料・参考サイト



課題のページへ