线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常

线程“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

我对java非常陌生,在阅读了基本教程之后,我正在尝试做一个计算器。我已经尝试破解这个错误一段时间了,这就是如何将我作为字符串的和转换为一个epress并计算它。 为了让您知道,我尝试了.parseInt和engine.eval,结果除了错误之外什么都没有

以下是重要的代码:

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