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(); } } } }