@SuppressWarnings("deprecation")
        private void evalZeroState() {
            if (otherThread == null) {
                graph.defaultWindow();

                graph.setNotification("");

                ArrayList<String> vars = new ArrayList<String>();
                vars.add(input4Box.getText());

                Function f = TokenizedFunctionFactory.createFunction(
                        expressionBox.getText(), vars);
                String method = (String) input1Box.getSelectedItem();
                CalculationThread t = null;

                try {
                    if (method.equals("Bisection")) {
                        t = new BisectionThread(f, Double.parseDouble(input3Box
                                .getText()), Double.parseDouble(input2Box
                                .getText()),
                                optionFrame.getParam("StoppingThreshold"),
                                (int) optionFrame.getParam("MaxIterations"),
                                graph);
                    } else if (method.equals("False Position")) {
                        t = new FalsePositionThread(f,
                                Double.parseDouble(input3Box.getText()),
                                Double.parseDouble(input2Box.getText()),
                                optionFrame.getParam("StoppingThreshold"),
                                (int) optionFrame.getParam("MaxIterations"),
                                graph);
                    } else if (method.equals("Secant")) {
                        t = new SecantThread(f, Double.parseDouble(input3Box
                                .getText()), Double.parseDouble(input2Box
                                .getText()),
                                optionFrame.getParam("StoppingThreshold"),
                                (int) optionFrame.getParam("MaxIterations"),
                                graph);
                    } else if (method.equals("Modified Secant")) {
                        t = new ModifiedSecantThread(f,
                                Double.parseDouble(input2Box.getText()),
                                optionFrame.getParam("ModifiedSecantStep"),
                                optionFrame.getParam("StoppingThreshold"),
                                (int) optionFrame.getParam("MaxIterations"),
                                graph);
                    } else if (method.equals("Modified F.P.")) {
                        t = new ModifiedFalsePositionThread(f,
                                Double.parseDouble(input3Box.getText()),
                                Double.parseDouble(input2Box.getText()),
                                optionFrame.getParam("StoppingThreshold"),
                                (int) optionFrame.getParam("MaxIterations"),
                                graph);
                    }
                    displayOutput("Method: " + method + "\n");
                } catch (NumberFormatException e) {
                    displayOutput("You must enter valid constraints\n");
                    return;
                }

                if (t == null) {
                    displayOutput("There was an error starting the zero computation\n");
                    return;
                }

                t.start();
                otherThread = t;
                btnEvaluate.setText("Finish");
                btnContinue.setEnabled(true);

                disableInputs();
                actionBox.setEnabled(false);
            } else {
                while (!otherThread.hasResults()) {
                    otherThread.resume();
                }
                finishZerosRun();
            }
        }