Калькулятор ax2+bx+c - Java
Формулировка задачи:
У меня есть код, не могу понять почему не работает кнопка 1(b1), не считает, хотя кнопка2(b2) работает, прошу о помощи,
не пойму, что не так?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
Main window = new Main("Calculator");
window.f1.setVisible(true);
}
});
}
JButton b1, b2;
JTextField t1, t2, t3;
JLabel l1;
JFrame f1;
double a, b, c, d, x1, x2;
String s1, s2, s3;
eHandler handler = new eHandler();
public Main(String s) {
super(s);
f1 = new JFrame();
f1.setBounds(100, 100, 300, 200);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.getContentPane().setLayout(null);
b1 = new JButton("Solve");
b1.setBounds(0, 61, 284, 50);
f1.getContentPane().add(b1);
t1 = new JTextField();
t1.setColumns(10);
t1.setBounds(0, 39, 94, 20);
f1.getContentPane().add(t1);
b2 = new JButton("Clear");
b2.setBounds(0, 112, 284, 50);
f1.getContentPane().add(b2);
t2 = new JTextField();
t2.setColumns(10);
t2.setBounds(96, 39, 94, 20);
f1.getContentPane().add(t2);
t3 = new JTextField();
t3.setColumns(10);
t3.setBounds(192, 39, 94, 20);
f1.getContentPane().add(t3);
JLabel l1 = new JLabel();
l1.setBounds(3, 0, 281, 39);
f1.getContentPane().add(l1);
b1.addActionListener(handler);
b2.addActionListener(handler);
}
public class eHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {
a = Double.parseDouble(t1.getText());
b = Double.parseDouble(t2.getText());
c = Double.parseDouble(t3.getText());
d = (b*b) - (4*a*c);
x1 = ((-b + Math.sqrt(d))/(2*a));
x2 = ((-b - Math.sqrt(d))/(2*a));
s1 = "x1 = " + x1;
s2 = "x2 = " + x2;
s3 = s1 + " " + s2;
l1.setText(s3);
}
if (e.getSource() == b2) {
t1.setText(null);
t2.setText(null);
t3.setText(null);
l1.setText(null);
}
}
}
}Решение задачи: «Калькулятор ax2+bx+c»
textual
Листинг программы
l1 = new JLabel(); l1.setBounds(3, 0, 281, 39); f1.getContentPane().add(l1);