//MyCanvasObserve.java // //Class to observe changes to the listener canvas // //Naomi, Vicky, Christie import java.awt.*; import java.awt.event.*; import java.io.*; class MyCanvasObserve extends Canvas implements CanvasObserver { int downx = 0, downy = 0, upx = 0, upy = 0, height=0, width=0, startX=0, startY=0; // int isDraw = 0; // 0 = don't draw, 1 = draw MyCanvasListen myLCanvas = new MyCanvasListen(); //*********************** // // init // //*********************** public void init(){ }// end init //*********************** // // MyCanvasObserve // //*********************** public MyCanvasObserve(MyCanvasListen LCanvas) { myLCanvas = LCanvas; setBackground(Color.pink); setSize(200,200); }// end MyCanvasObserve //*********************** // // canvasHasChanged // //*********************** public void canvasHasChanged(MyCanvasListen LCanvas) { repaint(); }// end canvasHasChanged //*********************** // // paint // //*********************** public void paint( Graphics g ) { downx = myLCanvas.get_downx(); downy = myLCanvas.get_downy(); upx = myLCanvas.get_upx(); upy = myLCanvas.get_upy(); g.setColor(Color.black); if( downx >= upx ) //Determine the width and the coord. for the upper-left { //edge of the rect, which will be the smaller of the 2 width = (downx-upx); // numbers (either upx or downx) startX = upx; } else { width=(upx-downx); startX = downx; } if( downy >= upy ) { height = (downy-upy); startY = upy; } else { height=(upy-downy); startY = downy; } // if (!(startX == 0 && startY == 0)) // isDraw = 1; //if (isDraw == 1) g.drawOval(startX, startY, width, height); }// end paint }// end class MyCanvasObserve