import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Puu4 extends Applet implements MouseListener{ int vajutusenr; Tasandinihe hiir1=new Tasandinihe(130, 300), hiir2=new Tasandinihe(170, 300); Scrollbar ooteaeg=new Scrollbar(Scrollbar.HORIZONTAL, 100, 100, 0, 500); //väärtus, nupupikkus, vähim, suurim Scrollbar pikkus=new Scrollbar(Scrollbar.HORIZONTAL, 200, 100, 0, 500); Scrollbar kalle=new Scrollbar(Scrollbar.HORIZONTAL, 200, 100, 0, 500); Label ooteajasilt=new Label("Aeglustus joonistamisel:"); Label pikkusesilt=new Label("Lüli pikkus:"); Label kaldesilt=new Label("Okste kalle:"); public Puu4(){ setLayout(new BorderLayout()); Panel p1=new Panel(new GridLayout(3, 2)); p1.add(pikkusesilt); p1.add(pikkus); p1.add(kaldesilt); p1.add(kalle); p1.add(ooteajasilt); p1.add(ooteaeg); add(p1, BorderLayout.SOUTH); addMouseListener(this); } public void mousePressed(MouseEvent e){ vajutusenr++; if(vajutusenr==1){ hiir1=new Tasandinihe(e.getX(), e.getY()); } if(vajutusenr==2){ hiir2=new Tasandinihe(e.getX(), e.getY()); repaint(); vajutusenr=0; } } public void mouseReleased(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} void joonistaPuu(Graphics g, Tasandinihe p1, Tasandinihe p2){ Tasandinihe nx=p2.miinus(p1); Tasandinihe ny=nx.keera().korda(-1); //y-suund vastupidiseks Tasandinihe p3=p1.pluss(ny.korda(pikkus.getValue()/100.0)); Tasandinihe p4=p2.pluss(ny.korda(pikkus.getValue()/100.0)); Tasandinihe p5=p1.pluss(nx.korda(0.5).pluss(ny.korda( pikkus.getValue()/100.0+kalle.getValue()/1000.0 ))); joon(g, p1, p2); joon(g, p1, p3); joon(g, p2, p4); joon(g, p3, p5); joon(g, p4, p5); try{Thread.sleep(ooteaeg.getValue());}catch(Exception e){ } if(p1.kaugus(p3)>10){ joonistaPuu(g, p3, p5); joonistaPuu(g, p5, p4); } } void joon(Graphics g, Tasandinihe t1, Tasandinihe t2){ g.drawLine(t1.X(), t1.Y(), t2.X(), t2.Y()); } public void paint(Graphics g){ joonistaPuu(g, hiir1, hiir2); } public static void main(String argumendid[]){ Frame f=new Frame("Puu joonistamine"); f.add(new Puu4()); f.setSize(300, 400); f.setVisible(true); } }