как создать приложение с интерфейсом которые будет считать простые квадратные уравнения?

import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;
import javax.swing.*;

public class Iterface extends JFrame {
    private JButton button = new JButton("Найти значение");
    private JTextField inputA= new JTextField("", 5);
    private JTextField inputB = new JTextField("", 5);
    private JTextField inputC = new JTextField("", 5);
    private JLabel labelA = new JLabel("Задайте значение а: ");
    private JLabel labelB = new JLabel("Задайте значение b: ");
    private JLabel labelC= new JLabel("Задайте значение c: ");
    private JCheckBox check = new JCheckBox("Тест на робота", false);





    public Iterface (){
        super("Калькулятор простых квадратных уровнений");
        this.setBounds(100,100,600,200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container container = this.getContentPane();
        container.setLayout(new GridLayout(4,2,5,5));
        container.add(labelA);
        container.add(inputA);
        container.add(labelB);
        container.add(inputB);
        container.add(labelC);
        container.add(inputC);
        ButtonGroup group = new ButtonGroup();
        container.add(check);
        button.addActionListener(new ButtonEventListener ());
        container.add(button);

    }
    class ButtonEventListener implements ActionListener{

        public void actionPerformed (ActionEvent e){
            // a*x*2+b*x+c=0
            double a;
            double b;
            double c;
            double x1, x2;
            a = Double.parseDouble(inputA.getText());
            b = Double.parseDouble(inputB.getText());
            c = Double.parseDouble(inputC.getText());

            double Discriminant = b*b-4*(a*c); //формула Дискриминанта
            if (Discriminant == 0 ) { //если Дикср. = 0
                x1 = (-b) / (2 * a);
            }else if(Discriminant > 0 ){
                x1 = (-b+Math.sqrt(Discriminant))/(2*a);
                x2 = (-b-Math.sqrt(Discriminant))/(2*a);
            }else { //если Дикср. < 0
                System.out.println("Err");
            }
            String message = "";
            message += "Расчёт окончен!\n";
            message += "x1 = "+ inputA.getText() + "\n";
            message += "x2 = "+ inputB.getText() + "\n";
            message += ((check.isSelected())? "Вы Робот(": "Вы не робот!");
            JOptionPane.showMessageDialog(null, message, "Решение", JOptionPane.PLAIN_MESSAGE );
        }

    }
}

это то что есть у меня, помогите сделать правильно


Ответы (1 шт):

Автор решения: SelectionForCollection

Обратите внимание на ваши строчки

    message += "x1 = "+ inputA.getText() + "\n";
    message += "x2 = "+ inputB.getText() + "\n";

Вы просто получаете введенный вами текст. Для чего тогда вы высчитывали х1 и х2? Я убежден, что вина всему невнимательность, впредь внимательнее смотрите на свой код. Исправьте на:

    message += "x1 = "+ x1 + "\n";
    message += "x2 = "+ x2 + "\n";

И не забудьте инициализировать эти переменные.

→ Ссылка