import java.awt.*; import java.applet.Applet; class Valik extends Panel{ double min=-100, alg=1, max=100; TextField tf=new TextField(5); double vaartus=1, vahe=0.1; boolean fookuses=false; Button nv=new Button("<"), np=new Button(">"); String ise=""; Applet ap; public Valik(Applet at, String st){ ap=at; ise=st; setLayout(new BorderLayout()); add("West", nv); add("Center", tf); add("East", np); vaartus=alg; tf.setText(Double.toString(vaartus)); } public Valik(Applet at, String st, double mv, double av, double sv, double vv){ min=mv; alg=av; max=sv; vahe=vv; ap=at; ise=st; setLayout(new BorderLayout()); add("West", nv); add("Center", tf); add("East", np); vaartus=alg; tf.setText(Double.toString(vaartus)); } public boolean action(Event e, Object arg){ double abi=0; abi=Double.valueOf(tf.getText()).doubleValue(); if(!Double.isNaN(abi)&(abi>=min)&(abi<=max))vaartus=abi; String s=""; if(e.target==nv){abi=vaartus-vahe;if(abi>=min)vaartus-=vahe;} if(e.target==np){abi=vaartus+vahe;if(abi<=max)vaartus+=vahe;} if(e.target==tf){abi=Double.valueOf(tf.getText()).doubleValue(); if(!Double.isNaN(abi)&(abi>=min)&(abi<=max))vaartus=abi;} s=Double.toString(vaartus); // System.out.println(s.length()+" "+s.indexOf(".")); if(s.indexOf(".")>0) if(s.length()>(s.indexOf(".")+3))s=s.substring(0, s.indexOf(".")+3); if(Math.abs(vaartus)<0.005) tf.setText("0.0"); else tf.setText(s); ap.action(new Event(this, Event.ACTION_EVENT, new Double(vaartus)), new Double(abi)); return true; } public boolean keyUp(Event e, int key){ double abi=0; if(e.target==tf){abi=Double.valueOf(tf.getText()).doubleValue(); if(!Double.isNaN(abi)&(abi>=min)&(abi<=max))vaartus=abi;} // tf.setText(Double.toString(vaartus)); ap.action(new Event(this, Event.ACTION_EVENT, new Double(vaartus)), new Double(abi)); return true; } public boolean gotFocus(Event e, Object arg){ fookuses=true; return true; } public boolean lostFocus(Event e, Object arg){ fookuses=false; return true; } }