感言 :没有实现异常,唉唉唉。
首先是窗口类
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EquationFrame extends JFrame implements ActionListener{
JTextField t1,t2,t3;
SquareEquation s = new SquareEquation();
JLabel l1,l2,l3;
static JTextArea tt;
JButton b1;
EquationFrame()
{
setLayout(new FlowLayout());
JPanel p = new JPanel();
t1 = new JTextField(10);
t2 = new JTextField(10);
t3 = new JTextField(10);
l1 = new JLabel("二次系数");
l2 = new JLabel("一次系数");
l3 = new JLabel("常数项");
b1 = new JButton("确定");
b1.addActionListener(this);
tt = new JTextArea(48,48);
p.add(l1);
p.add(t1);
p.add(l2);
p.add(t2);
p.add(l3);
p.add(t3);
p.add(b1);
add(p,BorderLayout.NORTH);
add(tt,BorderLayout.SOUTH);
setBounds(350,350,580,580);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()== b1)
{
Double a;
a =Double.parseDouble(t1.getText());
s.seta(a);
Double b;
b =Double.parseDouble(t2.getText());
s.setb(b);
Double c;
c =Double.parseDouble(t3.getText());
s.setc(c);
if (s.getresult()>0)
{
double x1,x2;
x1 = (-s.b+Math.sqrt(s.getresult()))/2*s.a;
x2 = (-s.b-Math.sqrt(s.getresult()))/2*s.a;
tt.append("第一个跟是:"+x1);
tt.append("第二个跟是:"+x2);
}
if (s.getresult()==0)
{
double x3;
x3 = (-s.b-Math.sqrt(s.getresult()))/2*s.a;
tt.append("这个跟是:"+x3);
}
if (s.getresult()<0)
{
tt.append("没有实根");
}
}
}
}
接着是方程类:
public class SquareEquation {
double a,b,c;
double seta(double a)
{
this.a = a;
return a;
}
double setb(double b)
{
this.b = b;
return b;
}
double setc(double c)
{
this.c = c;
return c;
}
double getresult()
{
double result;
result = b*b-4*a*c;
return result;
}
double jisuan ()throws excepion
{
if(getresult()<0)
{
excepion se = new excepion();
throw se;
}
return 0;
}
}
最后是测试类:
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new EquationFrame();
}
}