线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常
我对java非常陌生,在阅读了基本教程之后,我正在尝试做一个计算器。我已经尝试破解这个错误一段时间了,这就是如何将我作为字符串的和转换为一个epress并计算它。 为了让您知道,我尝试了.parseInt和engine.eval,结果除了错误之外什么都没有 以下是重要的代码:线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常,java,evaluation,Java,Evaluation,我对java非常陌生,在阅读了基本教程之后,我正在尝试做一个计算器。我已经尝试破解这个错误一段时间了,这就是如何将我作为字符串的和转换为一个epress并计算它。 为了让您知道,我尝试了.parseInt和engine.eval,结果除了错误之外什么都没有 以下是重要的代码: private JTextField txt = new JTextField(10); class ButtonListener implements ActionListener{ public voi
private JTextField txt = new JTextField(10);
class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
DoubleEvaluator evaluator = new DoubleEvaluator();
Double result = evaluator.evaluate(txt.getText());
String x = String.valueOf(result);
if(((JButton)e.getSource()).getText() != "="){
txt.setText(txt.getText()+((JButton)e.getSource()).getText());}
else{
txt.setText(x);
}
}}
请有人能给我一个简单的答案来满足我的需要
很抱歉,如果已经有人问过这个问题,
谢谢你:
其余代码如下:
package calculator;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import com.fathzer.soft.javaluator.DoubleEvaluator;
public class calculator_gui extends JFrame{
private JButton
b1 = new JButton("1"),
b2 = new JButton("2"),
b3 = new JButton("3"),
b4 = new JButton("4"),
b5 = new JButton("5"),
b6 = new JButton("6"),
b7 = new JButton("7"),
b8 = new JButton("8"),
b9 = new JButton("9"),
b0 = new JButton("0"),
bx = new JButton("*"),
bp = new JButton("+"),
bs = new JButton("-"),
bd = new JButton("/"),
br = new JButton("=");
private JTextField txt = new JTextField(10);
class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
DoubleEvaluator evaluator = new DoubleEvaluator();
Double result = evaluator.evaluate(txt.getText());
String x = String.valueOf(result);
if(!((JButton)e.getSource()).getText().equals("=")){
txt.setText(txt.getText()+ ((JButton)e.getSource()).getText());}
else{
txt.setText(x);
}
}}
private ButtonListener bl = new ButtonListener();
public calculator_gui(){
b1.addActionListener(bl);
b2.addActionListener(bl);
b3.addActionListener(bl);
b4.addActionListener(bl);
b5.addActionListener(bl);
b6.addActionListener(bl);
b7.addActionListener(bl);
b8.addActionListener(bl);
b9.addActionListener(bl);
b0.addActionListener(bl);
bp.addActionListener(bl);
bs.addActionListener(bl);
bx.addActionListener(bl);
br.addActionListener(bl);
bd.addActionListener(bl);
setLayout(new FlowLayout());
add(txt);
add(b1);
add(b2);
add(b3);
add(b4);
add(b5);
add(b6);
add(b7);
add(b8);
add(b9);
add(bx);
add(b0);
add(bd);
add(bp);
add(bs);
add(br);
}
public static void main(String[] args){
//run(new Button(), 240, 180);
calculator_gui frame = new calculator_gui();
frame.setTitle("Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(160, 210);
frame.setVisible(true);
frame.setResizable(false);
}
}
不要使用==和!=比较字符串。使用if!JButtone.getSource.getText.equals={请提供您在文本字段中输入的内容、预期结果和抛出的堆栈跟踪。通常情况下:Integer.parseInt应在字符串为整数时工作:哪一行引发异常?它不标记特定行。文本字段将包含一个由JButtons输入的等式,例如1*1