Java Calc не появляется и выходит - PullRequest
0 голосов
/ 27 мая 2018

Я создал небольшое приложение калькулятора на основе графического интерфейса пользователя 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;
    }
}

1 Ответ

0 голосов
/ 27 мая 2018

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

Замените: SmallCalcApp sc; на SmallCalcApp sc = new SmallCalcApp();, чтобы сделать это.

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

Итак, ваш main должен выглядеть так:

    public static void main(String args[]) {
        SwingUtilities.invokeLater(() -> {
            new SmallCalcApp();
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...