Program that solves a simple math equation [closed]

See also the ScriptEngine.

enter image description here

import java.awt.*;
import java.awt.event.*;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.swing.*;

class EvaluateString {

    public static void main(String[] args) {
        Runnable r = new Runnable() {

            @Override
            public void run() {
                JPanel gui = new JPanel(new BorderLayout(5,5));
                final JTextField input = new JTextField(
                        "Math.pow(2.6,22)+ Math.pow(3.9,15)",19);
                final JTextField output = new JTextField(15);
                output.setEditable(false);

                gui.add(input, BorderLayout.CENTER);
                gui.add(output, BorderLayout.PAGE_END);

                // obtain a reference to the JS engine
                final ScriptEngine engine = new 
                        ScriptEngineManager().getEngineByExtension("js");
                ActionListener calculate = new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        try {
                            String s = ((Double)engine.eval(input.getText())).toString();
                            output.setText(s);
                        } catch (ScriptException ex) {
                            ex.printStackTrace();
                        }
                    }
                };
                input.addActionListener(calculate);

                JOptionPane.showMessageDialog(null, gui);
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
        SwingUtilities.invokeLater(r);
    }
}

Browse More Popular Posts

Leave a Comment