import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Hina9 extends JFrame{

    public Hina9(){
        //画面の設定
        setSize(700,700);
        setTitle("Java Programing");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        //パネルを貼り付ける
        MyJPanel    myJPanel= new MyJPanel();
        Container c = getContentPane();    //コンテナの取得
        c.add(myJPanel);        //パネルを貼る

            setVisible(true);
    }

    public static void main(String[] args){
        new Hina9();
    }

    public class MyJPanel extends JPanel implements ActionListener{

        JTextField textField1, textField2, textField3;
        JLabel label1, label2, label3;
        JButton beginButton;
        double a, b, c;

        public MyJPanel(){
            setBackground(Color.white);
                //setLayout(new GridLayout(2,10));
            textField1 = new JTextField("1.0",4);
            textField2 = new JTextField("0.0",4);
            textField3 = new JTextField("0.0",4);
            label1 = new JLabel("a");
            label2 = new JLabel("b");
            label3 = new JLabel("c");

            beginButton = new JButton("Draw");
            a=1.0; b=0.0;c=0.0;

            add(label1);
            add(textField1);
            add(label2);
            add(textField2);
            add(label3);
            add(textField3);
            add(beginButton);

            beginButton.addActionListener(this);    

        }

        public void paintComponent(Graphics g){

		    super.paintComponent(g); //画面クリアする。

            Dimension d;
            double x, y;
            double x1, y1, x2, y2;
            int px1, py1, px2, py2;
            double incx=0.02;

            d=getSize();

            //write axis
            g.setColor(new Color(255, 0, 0));
            g.drawLine(0,d.height/2,d.width,d.height/2);
            g.drawLine(d.width/2,0,d.width/2,d.height);            
            g.drawString("x",d.width-20,d.height/2+10);
            g.drawString("y",d.width/2+10,10);

            //write graph
            g.setColor(Color.black);
            for (x=-1;x<1;x=x+incx) {
              x1=x;
              y1=x1*x1;
              x2=(x+incx);
              y2=(x+incx)*(x+incx);
              
              //trans real to point
              px1=(int)(d.width/2*x1+d.width/2);
              py1=(int)(d.height/2-d.height*y1/2);
              px2=(int)(d.width*x2/2+d.width/2);
              py2=(int)(d.height/2-d.height/2*y2);

              if(( py2< d.height & py2>0) | ( px2 < d.width & px2> 0) ){
                  g.drawLine(px1,py1,px2,py2);
              }
            }

        }

        public void actionPerformed(ActionEvent e) {
            if(e.getSource()==beginButton)
            {
            a=Double.parseDouble(textField1.getText());
            b=Double.parseDouble(textField2.getText());
            c=Double.parseDouble(textField3.getText());
            repaint();
            }

        }
    }
}
