import java.awt.*; import java.awt.event.*; import java.applet.Applet; //Programmi autor on Rain Koor. //Proge ylesandeks oleks tõmmata ekraanil //kasutaja poolt määratud punktide vahele punktiirjoon. //Päris õiget lahendust asjale ei suutnud ma kuidagi //välja mõelda ja seetõttu sai kasutatud niinimetatud "lolli mehe" //varianti - proge tõmbab lihtsalt peale iga joone valmistegemist //ekraanile valge ruudustiku(alati samasuguse), mis valgena jätab //mulje nagu oleks tegu punktiirjoonega. public class Joonis3 extends Applet{ public Joonis3(){ addMouseListener(new HiireKuular()); setBackground(Color.white); } class HiireKuular extends MouseAdapter{ int z=0;//vajalik valge ruudustiku maalimiseks int x1=0; int x2=0; int y1=0; int y2=0; //vajalikud muutujad(joone koordinaadid) public void mousePressed(MouseEvent e) { x1=e.getX(); y1=e.getY();//hangime alguspunkti koordinaadid Graphics g=Joonis3.this.getGraphics(); g.setColor(Color.red); g.drawOval(x1, y1, 3, 3);//teeme alguspunkti g.fillOval(x1, y1, 3, 3);//ja värvime selle üle } public void mouseReleased(MouseEvent e) {x2=e.getX(); y2=e.getY();//hangime lõpp-punkti koordinaadid Graphics g=Joonis3.this.getGraphics(); g.setColor(Color.red); g.drawOval(x2, y2, 3, 3);//teeme lõpp-punkti g.fillOval(x2, y2, 3, 3);//ja värvime selle üle g.setColor(Color.blue); g.drawLine(x1, y1, x2, y2);//see rida tõmbab kahe punkti vahele joone g.setColor(Color.white); for (z=1; z<500; z=z+5){ g.drawLine(z, 1, z, 300);//see tsükkel tõmbab ekraani vertikaalseid jooni täis } for (z=1; z<500; z=z+20){ g.drawLine(1, z, 500, z);//ja see horisontaalseid... //Olgu öeldud, et alguspunkti ja lõpp-punkti tekitamise omistamine erinevatele //hiire tegevustele tuleneb samuti minu saamatusest. } } } public static void main(String argumendid[]){ Frame f= new Frame(); f.setSize(500, 200); f.setTitle("Vajutage aknale, liigutage hiirt ja laske lahti"); //f.setBackground(Color.white); f.add(new Joonis3()); f.setVisible(true); } }