package temp;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
import java.util.*;
public class MandelbrotProf extends JFrame implements MouseMotionListener, MouseListener, KeyListener ,ActionListener ,ItemListener{
double real_min = -2,
real_max = 1,
imag_min = -1.5 ,
imag_max = 1.5 ;
int maxiteration = 100,
width = 400,
height = 400;
int mouse_x=65;
int mouse_y=253;
double tempWidth;
double tempHeight;
int ddx,ddy;
int colorSys=1;
int intBackMode=0;
private Stack Stackpoints=new Stack();
private JLabel lbMouseX,lbMouseY,lbreal_min,lbreal_max,lbimag_min,lbimag_max,lbIteration;
private JTextField txtMouseX,txtMouseY,txtImageX,txtImageY,txtreal_min,txtreal_max,txtimag_min,txtimag_max,txtIteration;
private JPanel panelStyle,panelEquation;
private JRadioButton style1,style2,style3,style4,style5,style6;
private JRadioButton equation1,equation2;
private ButtonGroup ButtonGroupstyle,ButtonGroupEquation;
private Choice choiceIteration;
private JButton ButtonRepaint,ButtonReset,ButtonBack,ButtonClose,ButtonSave,ButtonAbout;
private Mandelbrot panelImage;
public void Componentint(){
Container container = getContentPane();
container.setLayout(null);
////////////////////////// JLabel ////////////////////
lbMouseX = new JLabel( "MouseX" );
container.add(lbMouseX);
lbMouseX.setBounds(12, 46,47, 13);
lbMouseY = new JLabel( "MouseY" );
container.add(lbMouseY);
lbMouseY.setBounds(12, 72,47, 13);
//,,,,,;
lbreal_min = new JLabel( "RealMin" );
container.add(lbreal_min);
lbreal_min.setBounds(313, 46,47, 13);
lbreal_max = new JLabel( "RealMax" );
container.add(lbreal_max);
lbreal_max.setBounds(313, 72,51, 13);
lbimag_min = new JLabel( "ImagMin" );
container.add(lbimag_min);
lbimag_min.setBounds(313, 98,51, 13);
lbimag_max = new JLabel( "ImagMax" );
container.add(lbimag_max);
lbimag_max.setBounds(313, 124,53, 13);
lbIteration = new JLabel( "Iteration" );
container.add(lbIteration);
lbIteration.setBounds(313, 150,49, 13);
//////////////////// JTextArea //////////////////////
//txtMouseX
txtMouseX = new JTextField();
container.add(txtMouseX);
txtMouseX.setBounds(65, 43,24, 20);
txtMouseX.setEditable(false);
//txtMouseY
txtMouseY = new JTextField();
container.add(txtMouseY);
txtMouseY.setBounds(65, 69,24, 20);
txtMouseY.setEditable(false);
//txtImageX
txtImageX = new JTextField();
container.add(txtImageX);
txtImageX.setBounds(92, 43,135, 20);
txtImageX.setEditable(false);
//txtImageY
txtImageY = new JTextField();
container.add(txtImageY);
txtImageY.setBounds(92, 69,135, 20);
txtImageY.setEditable(false);
//txtreal_min
txtreal_min = new JTextField();
container.add(txtreal_min);
txtreal_min.setBounds(366, 43,155, 20);
//txtreal_max
txtreal_max = new JTextField();
container.add(txtreal_max);
txtreal_max.setBounds(366, 69,155, 20);
//txtimag_min
txtimag_min = new JTextField();
container.add(txtimag_min);
txtimag_min.setBounds(366, 95,155, 20);
//txtimag_max
txtimag_max = new JTextField();
container.add(txtimag_max);
txtimag_max.setBounds(366, 121,155, 20);
//txtIteration
// txtIteration = new JTextField();
// container.add(txtIteration);
// txtIteration.setBounds(366, 147,155, 20);
//////////////////////////////// ButtonGroup ///////
ButtonGroupstyle=new ButtonGroup();
ButtonGroupEquation=new ButtonGroup();
///////////////////////////// JRadioButton Style /////////
// 15, 95
int panelStyleX=15,panelStyleY=95;
int equationX=15,equationY= 169;
style1=new JRadioButton("style1",true);
style1.setBounds(6+panelStyleX,19+panelStyleY,59, 17);
style1.addItemListener(this);
//panelStyle.add(style1);
container.add(style1);
ButtonGroupstyle.add(style1);
style2=new JRadioButton("style2",false);
style2.setBounds(77+panelStyleX, 19+panelStyleY,59, 17);
style2.addItemListener(this);
//panelStyle.add(style2);
container.add(style2);
ButtonGroupstyle.add(style2);
style3=new JRadioButton("style3",false);
style3.setBounds(152+panelStyleX, 19+panelStyleY,59, 17);
style3.addItemListener(this);
//panelStyle.add(style3);
container.add(style3);
ButtonGroupstyle.add(style3);
style4=new JRadioButton("style4",false);
style4.setBounds(6+panelStyleX, 42+panelStyleY,59, 17);
style4.addItemListener(this);
//panelStyle.add(style4);
container.add(style4);
ButtonGroupstyle.add(style4);
style5=new JRadioButton("style5",false);
style5.setBounds(78+panelStyleX, 42+panelStyleY,59, 17);
style5.addItemListener(this);
//panelStyle.add(style5);
container.add(style5);
ButtonGroupstyle.add(style5);
style6=new JRadioButton("style5",false);
style6.setBounds(152+panelStyleX, 42+panelStyleY,59, 17);
style6.addItemListener(this);
//panelStyle.add(style6);
container.add(style6);
ButtonGroupstyle.add(style6);
///////////////////////////////// JRadioButton Equation ////////////
equation1=new JRadioButton("Equation1",true);
equation1.setBounds(6+equationX, 19+equationY,76, 17);
equation1.addItemListener(this);
//panelEquation.add(equation1);
container.add(equation1);
ButtonGroupEquation.add(equation1);
equation2=new JRadioButton("Equation2",true);
equation2.setBounds(130+equationX, 19+equationY,76, 17);
equation2.addItemListener(this);
//panelEquation.add(equation2);
container.add(equation2);
ButtonGroupEquation.add(equation2);
////////////////////////////////// JButton ///////////////
//ButtonReset,ButtonBack,ButtonClose;
ButtonRepaint=new JButton("Repaint");
ButtonRepaint.setBounds(316, 173,205, 43);
ButtonRepaint.addActionListener(this);
container.add(ButtonRepaint);
ButtonReset=new JButton("Reset");
ButtonReset.setBounds(283, 652,75, 23);
ButtonReset.addActionListener(this);
container.add(ButtonReset);
ButtonBack=new JButton("Back");
ButtonBack.setBounds(364, 652,75, 23);
ButtonBack.addActionListener(this);
ButtonBack.setEnabled(false);
container.add(ButtonBack);
ButtonClose=new JButton("Close");
ButtonClose.setBounds(445,652,75, 23);
ButtonClose.addActionListener(this);
container.add(ButtonClose);
ButtonSave=new JButton("Save Image");
ButtonSave.setBounds(95, 652,100, 23);
ButtonSave.addActionListener(this);
container.add(ButtonSave);
ButtonAbout=new JButton("About");
Butto