import java.applet.Applet; import java.awt.*; public class rj3 extends Applet{ Image pilt, sahver; Graphics piltg, sahverg; int pikkus=300,korgus=400; int reanr=1, juur=1, komataga=0, vahe; long juurealus=0, vahearv, arv=36; int astmepikkus; FontMetrics fm; boolean valmis=false; Button oknupp=new Button(" * * OK * * "); TextField tf=new TextField(5), tf2=new TextField(5), tf3=new TextField(5); Panel p=new Panel(), p2=new Panel(), p3=new Panel(), p4=new Panel(); Panel pa=new Panel(), lp= new Panel(); Label lb=new Label("Enter number:"); Label lb2=new Label("Square root:"); public void init(){ this.setBackground(Color.white); Dimension r=this.size(); pikkus=r.width; korgus=r.height; pilt=createImage(pikkus, korgus); piltg=pilt.getGraphics(); sahver=createImage(pikkus, korgus); sahverg=sahver.getGraphics(); vahearv=arv; fm=getFontMetrics(getFont()); astmepikkus=fm.stringWidth("00"); p.setLayout(new GridLayout(2, 3)); p.add(lb); p.add(lb2); p.add(tf); p.add(tf2); p.add(tf3); p.add(oknupp); setLayout(new BorderLayout()); add("South", p); tf2.setText("10"); tf2.requestFocus(); tf2.selectAll(); tf2.setEditable(true); tf3.setEditable(false); } void algvaartustus(){ tf2.setText("25"); tf2.selectAll(); reanr=1; tf2.setEditable(true); juur=1; juurealus=0; komataga=0;arv=0; vahearv=0; tf2.requestFocus(); lb.setText("Enter number:"); tf.setText(""); tf3.setText(""); } void joonista2(){ long lahutus=juurealus+2*juur-1; if(vahearv-lahutus>0){ tf.setText(Integer.toString(juur)); if(juurealus==0|juur>1) piltg.drawString(Long.toString(vahearv), 50+astmepikkus*komataga-fm.stringWidth(Long.toString(vahearv)), reanr*10); reanr++; piltg.drawString(Long.toString(lahutus), 50+astmepikkus*komataga-fm.stringWidth(Long.toString(lahutus)), reanr++*10); piltg.drawLine(45+astmepikkus*komataga-fm.stringWidth(Long.toString(vahearv)), reanr*10-8, 50+astmepikkus*komataga, reanr*10-8); vahearv-=lahutus; reanr++; juur++; } else if(vahearv-lahutus==0){ piltg.drawString(Long.toString(vahearv), 50-fm.stringWidth(Long.toString(vahearv)), reanr++*10); piltg.drawString(Long.toString(lahutus), 50-fm.stringWidth(Long.toString(lahutus)), reanr++*10); piltg.drawLine(20, reanr*10-5, 50, reanr++*10-5); piltg.setColor(Color.red); piltg.drawString(Integer.toString(0), 50-fm.stringWidth(Integer.toString(0)), reanr++*10); piltg.setColor(Color.black); piltg.drawString("Square root of "+arv+"="+juur, 20, reanr++*10); oknupp.setLabel("Complete"); algvaartustus(); } else if(vahearv-lahutus<0){ piltg.setColor(Color.red); piltg.drawString("00", 50+ astmepikkus*komataga, reanr*10); piltg.setColor(Color.black); if(juur>1){ piltg.drawString(Long.toString(vahearv), 50+astmepikkus*komataga-fm.stringWidth(Long.toString(vahearv)), reanr*10); piltg.setColor(Color.red); piltg.drawString(Long.toString(vahearv)+"-"+Long.toString(lahutus)+ "<0", 60+astmepikkus*komataga, reanr*10-30); piltg.drawString(Long.toString(vahearv)+"*100="+Long.toString(vahearv)+"00",60+astmepikkus*komataga, reanr*10-20 ); piltg.setColor(new Color(10, 100, 10)); piltg.drawString(Long.toString(lahutus-2)+"+1=", 0, reanr*10+10); piltg.setColor(Color.black); } if(vahearv>Long.MAX_VALUE/100){ piltg.drawString("Square root of "+arv+"="+tf3.getText(), 10, reanr*10+30); piltg.drawString("Have a rest!" , 10, reanr*10+40); oknupp.setLabel("Finished"); algvaartustus(); } else { tf3.setText(tf3.getText()+Integer.toString(juur-1)); if(juurealus==0){tf3.setText(tf3.getText()+".");} vahearv*=100; if(juur>1)juurealus=10*juurealus+10*2*(juur-1); else juurealus=10*(juurealus+1); komataga++; juur=1;} } if (reanr>30){sahverg.drawImage(pilt, 0, 0, null); piltg.setColor(Color.white); piltg.fillRect(0, 0, pikkus, korgus); piltg.setColor(Color.black); piltg.drawImage(sahver, 0, -30, null); reanr-=3; } repaint(); } public void paint(Graphics g){ g.drawImage(pilt, 0, 0, this); } public boolean action(Event e, Object arg){ if(!valmis){ Dimension r=this.size(); pikkus=r.width; korgus=r.height; if(pikkus>0&korgus>0){ pilt=createImage(pikkus, korgus); piltg=pilt.getGraphics(); sahver=createImage(pikkus, korgus); sahverg=sahver.getGraphics(); valmis=true;} } if(e.target.equals(oknupp)){ if(reanr==1){arv=vahearv=Integer.parseInt(tf2.getText()); tf2.setEditable(false);oknupp.setLabel("Push"); lb.setText("Number:"); piltg.setColor(Color.white); piltg.fillRect(0, 0, pikkus, korgus); piltg.setColor(Color.black); } joonista2(); } return super.action(e, arg); } }