import java.applet.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; public class Kuular extends Applet implements MouseListener{ BufferedImage bi; Graphics img; int x, y, x1, y1, x2, y2; //init meetod appleti sees kutsutakse välja esimesena pärast talle vajaliku koha leidmist //veebilehel või kusiganes. //antud juhul on see paras koht, et hakata hiirt kuulama ja sättida taustavärv //ja tekitada üks pilt mällu, mille sisse saab ilusti joonistada. public void init(){ //ütleme appletile klassi, mis kuulab tema hiiretegevust. //Kuna kuulavaks klassiks on ta ise, siis nii saagugi kuulajaks "this" addMouseListener(this); //taustavärv setBackground(Color.black); //tekitame vajaliku suurusega pildi bi = new BufferedImage(getSize().width, getSize().height, BufferedImage.TYPE_INT_RGB); //jätame meelde viite, mille abil on just tekitatud pildi sisse lihtne joonistada img = bi.getGraphics(); } //paint meetod lihtsalt joonistab mälus oleva pildi appleti kehale. public void paint(Graphics g){ g.drawImage(bi, 0, 0, this); } //naljakas meetod, mida võiks kah nalja pärast kasutada. public String getAppletInfo(){ return("Rain Javaga jamamas"); } public void mousePressed(MouseEvent e){ x1=e.getX(); y1=e.getY(); System.out.println("mousePressed: "+ e.getX() + ", " + e.getY()); } public void mouseReleased(MouseEvent e){ x2=e.getX(); y2=e.getY(); //vaatame, kas laisk kasutaja ikka viitsis hiirt liigutada. //kui klahvi vajutamisel saadud koordinaat erineb klahvi lahti laskmisel saadud koordinaadist //siis on mõttekas pildi sisse jooneke vedada ja kästa appletil seda ka näidata. if(((x2-x1)!=0)||((y2-y1)!=0)){ img.drawLine(x1, y1, x2, y2); //klahvi lahti laskmisel jätame igaks juhuks enne klahvi vajutamisel saadud koordinaadid //kuskile turvalisse kohta meelde, milleks on antud juhul kaks uut muutujat x=x1; y=y1; repaint(); } System.out.println("mouseReleased: "+ e.getX() + ", " + e.getY()); } //juhul, kui alla vajutamise ja üles laskmise koordinaadid ei erine, siis kutsutakse välja //mouseClicked.. see on paras hetk neid meeldejäetud x ja y -t kasutada. teeme jälle joone :) public void mouseClicked(MouseEvent e){ img.drawLine(x,y,x2,y2); repaint(); System.out.println("mouseClicked: "+ e.getX() + ", " + e.getY()); } public void mouseExited(MouseEvent e){ System.out.println("mouseExited: "+ e.getX() + ", " + e.getY()); } public void mouseEntered(MouseEvent e){ System.out.println("mouseEntered: "+ e.getX() + ", " + e.getY()); } }