你好,我正在做一个小项目来求解二次方程。我有2个问题 1.当方程式没有根并且消息对话框应该像代码中那样出现时,出现了问题。我输入了数字,但没有任何反应。 2.有什么方法可以像真正的计算器一样操作,例如,我输入a = 4和b = 7和c = 5然后按计算(不是a = 4.00,b = 7.00,c = 5.00),但是结果将始终显示为double变量。
我尝试在“ try”部分中更改变量,但是事情并没有按照我想要的方式进行。这是我的代码:
JButton btnReset = new JButton("reset");
btnReset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
a.setText(null);
b.setText(null);
c.setText(null);
txtx1.setText(null);
txtx2.setText(null);
txtx.setText(null);
}
});
btnReset.setBounds(312, 37, 89, 23);
contentPane.add(btnReset);
JButton btnCalculate = new JButton("calculate");
btnCalculate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String A=a.getText();
String B=b.getText();
String C=c.getText();
try {
double aa=Double.parseDouble(A);
double bb=Double.parseDouble(B);
double cc=Double.parseDouble(C);
double delta=bb*bb-4*aa*cc;
double candelta=(double) Math.sqrt(delta);
if(candelta>0) {
double x1=(-bb-candelta)/2*aa;
double x2=(-bb+candelta)/2*aa;
txtx1.setText(String.valueOf(x1));
txtx2.setText(String.valueOf(x2));
}
if(candelta==0) {
txtx1.setText(null);
txtx2.setText(null);
double x=-bb/(2*aa);
txtx.setText(String.valueOf(x));
}
if(candelta<0) {
JOptionPane.showMessageDialog(btnCalculate, "No roots", "Result", JOptionPane.INFORMATION_MESSAGE);
}
if(aa==0) {
txtx1.setText(null);
txtx2.setText(null);
double x = -1*cc/bb;
txtx.setText(String.valueOf(x));
}
}
catch(NumberFormatException xNumberFormat){
JOptionPane.showMessageDialog(btnCalculate, "Invalid numbers", "Result", JOptionPane.INFORMATION_MESSAGE);
}
}
});
btnCalculate.setBounds(312, 90, 89, 23);
contentPane.add(btnCalculate);
我希望我的问题得到解决。谢谢您的所有帮助,非常感谢。