Java Calc не отображается и закрывается

Я создал небольшое приложение-калькулятор на основе графического интерфейса пользователя Java, но возникает проблема, заключающаяся в том, что оно ничего не показывает на экране, когда я его запускаю, оно сразу же существует автоматически. Что пошло не так? Вот код моего java-класса SmallCalcApp: .................................................. .................................................. .................................................. ....................

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

public class SmallCalcApp implements ActionListener{

    JFrame frame;
    JLabel firstOperand, secondOperand, answer; 
    JTextField op1, op2, ans;
    JButton plus, mul;

    public SmallCalcApp(){
        initGUI();
    }

    public void initGUI(){

        frame = new JFrame();
        Container con = frame.getContentPane();
        con.setLayout(new FlowLayout());


        plus = new JButton("+");
        mul = new JButton("*");
        con.add(plus);
        con.add(mul);


        plus.addActionListener(this);
        mul.addActionListener(this);



        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200,200);
        frame.setVisible(true);
    }

    public void actionPerformed(ActionEvent event){
            String oper, result;
            int num1, num2, res;

            if (event.getSource() == plus){
                oper = op1.getText();
                num1 = Integer.parseInt(oper);

                oper = op2.getText();
                num2 = Integer.parseInt(oper);

                res = num1 + num2;
                result = res + "";

                ans.setText(result);
            }

            if (event.getSource() == mul){
                oper = op1.getText();
                num1 = Integer.parseInt(oper);

                oper = op2.getText();
                num2 = Integer.parseInt(oper);

                res = num1 * num2;
                result = res + "";

                ans.setText(result);
            }
        } 


    public static void main(String args[]){
        SmallCalcApp sc;
    }
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это потому, что вы не создаете никаких экземпляров SmallCalcApp.

Заменять: SmallCalcApp sc; в SmallCalcApp sc = new SmallCalcApp(); для этого.

Кроме того, все приложения Swing должны работать в собственном потоке. Для получения дополнительной информации прочтите это..

Итак, ваш основной должен быть таким:

    public static void main(String args[]) {
        SwingUtilities.invokeLater(() -> {
            new SmallCalcApp();
        });
    }

Другие вопросы по теме