import java.applet.*; import java.awt.*; import java.awt.event.*; public class mandelb1 extends Applet implements ActionListener{ Button button1; Mandel_b1 newFrame1; public void init(){ setLayout(new BorderLayout()); button1=new Button("mb_JDK1.1"); button1.addActionListener(this); add(button1,"Center"); } public void actionPerformed(ActionEvent e){ if(e.getSource()==button1&&newFrame1==null){ newFrame1=new Mandel_b1(); } newFrame1.show(); } public static void main(String args[]){ Frame f=new Frame("mandelb1"); mandelb1 applet1=new mandelb1(); f.add(applet1,"Center"); f.setSize(80,30); f.show(); } } class Mandel_b1 extends Frame{ ScrollPane scrollPanel1; mb1Canvas canvas1; mb1_Controls controls; Mandel_b1(){ scrollPanel1=new ScrollPane(ScrollPane.SCROLLBARS_NEVER); scrollPanel1.setSize(408,510); setLayout(new BorderLayout()); canvas1=new mb1Canvas(); add(canvas1,"Center"); controls=new mb1_Controls(canvas1); add(controls,"South"); setTitle("Mandel_b1"); setResizable(false); setSize(408,510); addWindowListener(new MyListener()); } public void start(){ controls.setEnabled(true); } public void stop(){ controls.setEnabled(false); } class MyListener extends WindowAdapter{ public void windowClosing(WindowEvent e){ dispose(); } } } class mb1Canvas extends Canvas{ int xx,yy,aa; boolean filled=true; Dimension dimension1=new Dimension(400,400); public Dimension getPreferredSize(){ return dimension1; } public Dimension getMinimumSize(){ return dimension1; } public void paint(Graphics g){ int hx,hy; double xxx=xx-200; double yyy=yy-200; double aaa=aa; double x=xxx/100; double y=yyy/100; double a=aaa/100; double zr,zi,z,p,r,hz; for(double j=-1.0/a+y;j<1.0/a+y;j=j+0.005/a){ for(double i=-1.0/a+x;i<1.0/a+x;i=i+0.005/a){ hx=(int)(200-200*x*a+i*200*a); hy=(int)(200-200*y*a+j*200*a); hz=(int)(Math.round((1000/3)*(Math.log(a))/(Math.log(10))+500)); zr=0;zi=0; for(int k=0;k<=hz;k++){ z=zr*zr-zi*zi+i; p=2*zr*zi+j; r=z*z+p*p; if(r>=4&&k<=hz){ g.setColor(new Color((int)(125*Math.round(Math.sin(15*3.14*(k*3-90)/180)+1)), (int)(125*Math.round(Math.sin(15*3.14*k*3/180)+1)), (int)(125*Math.round(Math.sin(15*3.14*(k*3+90)/180)+1)))); g.fillRect(hx,hy,1,1); break; }else if(r<4&&k==hz){ g.setColor(new Color(0,0,0)); g.fillRect(hx,hy,1,1); } zr=z;zi=p; } } } } public void redraw(boolean filled,int xpp,int ypp,int app){ this.filled=filled; this.xx=xpp; this.yy=ypp; this.aa=app; repaint(); } } class mb1_Controls extends Panel implements ActionListener{ Panel panel2; mb1Canvas canvas; public mb1_Controls(mb1Canvas canvas){ this.canvas=canvas; panel2=new Panel(new GridLayout(2,5,1,1)); addButton("Sample0",panel2); addButton("Sample1",panel2); addButton("Sample2",panel2); addButton("Sample3",panel2); addButton("Sample4",panel2); addButton("Sample5",panel2); addButton("Sample6",panel2); addButton("Sample7",panel2); addButton("Sample8",panel2); addButton("Sample9",panel2); add(panel2,"Center"); } void addButton(String str,Container target){ Button button=new Button(str); button.addActionListener(this); target.add(button); } public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("Sample0")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample0"),150,200,100); }else if(e.getActionCommand().equals("Sample1")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample1"),250,200,400); }else if(e.getActionCommand().equals("Sample2")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample2"),230,141,800); }else if(e.getActionCommand().equals("Sample3")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample3"),186,112,400); }else if(e.getActionCommand().equals("Sample4")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample4"),146,139,1000); }else if(e.getActionCommand().equals("Sample5")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample5"),115,180,400); }else if(e.getActionCommand().equals("Sample6")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample6"),80,168,800); }else if(e.getActionCommand().equals("Sample7")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample7"),60,200,800); }else if(e.getActionCommand().equals("Sample8")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample8"),64,200,154); }else if(e.getActionCommand().equals("Sample9")){ String label=e.getActionCommand(); canvas.redraw(label.equals("Sample9"),23,200,3200); } } }