0

基本上它会让事情出现,所以我可以测试它并确保我走在正确的轨道上。这是我的主要“计算器”文件的代码:

package simplecalculator;        

import javax.swing.JFrame;
import javax.swing.UIManager;

public class Calculator {

    public static void main(String[] args) {

        JFrame calculatorFrame = new Listener();

        calculatorFrame.setSize(1000, 0x3e8);

        calculatorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        calculatorFrame.setVisible(true);
    }
}

我有一个单独的类监听器文件:

package simplecalculator;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class Listener extends JFrame {
    private JLabel enterFirstNumber;
    private JLabel enterSecondNumber;
    private JLabel resultLabel;
    private JTextField getFirstNumber;
    private JTextField getSecondNumber;
    private JButton addition;
    private JButton subtraction;
    private JButton multiplication;
    private JButton division;
    private JPanel panelOne;
    private JPanel panelTwo;
    private JPanel panelThree;

    private static final int frameWidth = 1000;
    private static final int frameHeight = 1000;

    int firstNumber;
    int secondNumber;
    double finalNumber;

    public void Calc(){

        setSize(frameWidth, frameHeight);

        enterFirstNumber = new JLabel("Enter First Number: ");
        getFirstNumber = new JTextField("0", 12);

        enterSecondNumber = new JLabel("Enter Second Number: ");
        getSecondNumber = new JTextField("0", 12);

    }

    public void buttons()
    {
        addition = new JButton("+");
        addition.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                firstNumber = Integer.parseInt(getFirstNumber.getText());
                secondNumber = Integer.parseInt(getSecondNumber.getText());
                finalNumber = firstNumber + secondNumber;
                resultLabel.setText("" + finalNumber);
            }
        });


        subtraction = new JButton("-");
        subtraction.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                firstNumber = Integer.parseInt(getFirstNumber.getText());
                secondNumber = Integer.parseInt(getSecondNumber.getText());
                finalNumber = firstNumber - secondNumber;
                resultLabel.setText("" + finalNumber);
            }
        });

        multiplication = new JButton("*");
        multiplication.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                firstNumber = Integer.parseInt(getFirstNumber.getText());
                secondNumber = Integer.parseInt(getSecondNumber.getText());
                finalNumber = firstNumber * secondNumber;
                resultLabel.setText("" + finalNumber);
            }
        });

        division = new JButton("/");
        division.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                firstNumber = Integer.parseInt(getFirstNumber.getText());
                secondNumber = Integer.parseInt(getSecondNumber.getText());
                finalNumber = firstNumber / secondNumber;
                resultLabel.setText("" + finalNumber);
            }
        });
    }

    private void panels(){
        panelOne = new JPanel();
        panelOne.setLayout(new GridLayout(2, 2));
        panelOne.add(enterFirstNumber);
        panelOne.add(getFirstNumber);
        panelOne.add(enterSecondNumber);
        panelOne.add(getSecondNumber);

        panelTwo = new JPanel();
        panelTwo.setLayout(new GridLayout(2, 2));
        panelTwo.add(addition);
        panelTwo.add(subtraction);
        panelTwo.add(multiplication);
        panelTwo.add(division);

        panelThree = new JPanel();
        panelThree.add(resultLabel);
    } 
}

基本上我需要知道的是:

1)我在正确的轨道上吗?2)我怎样才能得到一个实际的计算器而不仅仅是一个空白的小程序?

对不起,如果我听起来像个菜鸟;我是一名编程学生,我已经花了大约 12 个小时试图弄清楚这一点。

4

2 回答 2

1

您永远不会向 JFrame 添加任何组件。所以很明显,它不包含任何东西。您应该向您的 JFrame 子类添加一个构造函数,并使其向框架添加一些组件。

你还应该缩进你的代码,使其可读,并尊重 Java 命名约定。

于 2012-07-08T18:01:57.100 回答
0

尝试构建基本计算器时有很多陷阱:在 GUI 布局中,在输入/格式化数字和提供所需的精度等时。

您可以使用此示例在开始时跳过其中的大部分: https ://github.com/plokhotnyuk/calculator/tree/fee1b741aa74d659b8e30ad66d26d9ca6a2f6bc5

主要思想(从端到端测试开始)是从这本神奇的书中借用的:http: //www.growth-object-orientated-software.com/

随意分叉和破解!享受使用 TDD 和可执行规范进行开发!!!!

于 2012-07-10T06:27:00.137 回答