Nie wyświetla się okno kalkualtora

0

Cześć czemu nie mogę wyświetlić ekrany klakulatora?

package Calculator;
 
import java.awt.BorderLayout;
import java.awt.DisplayMode;
import java.awt.Event;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
public class CalculatorPanel extends JPanel{
 
    private JButton display;
    private JPanel panel;
    private double result;
    private String lastCommand;
    private boolean start;
 
    public CalculatorPanel(){
        setLayout(new BorderLayout());
 
        result = 0;
        lastCommand = "=";
        start = true;
 
        display = new JButton("0");
        display.setEnabled(false);
        add(display, BorderLayout.NORTH);
 
        ActionListener insert = new InsertAction();
        ActionListener command = new CommandAction();
 
        panel = new JPanel();
        panel.setLayout(new GridLayout(4, 4));
 
        addButton("7", insert);
        addButton("8", insert);
        addButton("9", insert);
        addButton("/", command);
 
        addButton("4", insert);
        addButton("5", insert);
        addButton("6", insert);
        addButton("*", command);
 
 
        addButton("1", insert);
        addButton("2", insert);
        addButton("3", insert);
        addButton("-", command);
 
        addButton("0", insert);
        addButton(".", insert);
        addButton("=", command);
        addButton("+", command);
 
        add(panel, BorderLayout.CENTER);
 
    }
    private void addButton(String label, ActionListener listener) {
        JButton button = new JButton(label);
        button.addActionListener(listener);
        panel.add(button);
 
    }
 
 
 
         private class InsertAction implements ActionListener{
 
            @Override
            public void actionPerformed(ActionEvent input) {
                if(start){
                    display.setText("");
                    start = false;
                }
                display.setText(display.getText() + input);
            }
 
         }
 
 
         private class CommandAction implements ActionListener{
 
                @Override
                public void actionPerformed(ActionEvent event) {
 
                    String command = event.getActionCommand();
                    if(start){
                        if (command.equals("-")) {
 
                        display.setText(command);
                        start = false;
                    }
                        else lastCommand = command;
                }
                    else{
                        calualte(Double.parseDouble(display.getText()));
                        lastCommand = command;
                        start = true;
 
                    }
                }
         }
 
public void calualte(double x)
{
    if (lastCommand.equals("+"))result +=x;
    else if (lastCommand.equals("-"))result -=x;
    else if (lastCommand.equals("*"))result *=x;
    else if (lastCommand.equals("/"))result /=x;
    else if (lastCommand.equals("="))result =x;
    display.setText("" + result);
}
 
}


package Calculator;
 
 
 
public class TestCal {
 
    public static void main(String[] args) {
         CalculatorPanel m = new CalculatorPanel();
            m.setVisible(true);
    }
 
}
0

Klasa CalculatorPanel dziedziczy po JPanel i nie możesz jej wyświetlać samej. Musisz umieścić go w JFrame i dopiero to JFrame wyświetlić:

JFrame ramka = new JFrame();
        CalculatorPanel m = new CalculatorPanel();
        ramka.add(m);
        ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ramka.setSize(300, 300);
        ramka.setVisible(true);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.