需求分析
- 目的是实现一个基于Java的可以求解带括号加减乘除表达式的带界面的计算器。
- 需要知道的Java技术:Java Swing(Java图形界面设计)、Java集合(栈)、lambda表达式、Java基础等。
设计思路
- 实现一个Java计算器界面类
- 实现一个Java计算带括号加减乘除表达式的类
- 实现主函数调用
设计实现
- Java计算器项目结构:
Calculator类为计算器界面设计、Calculate类为计算带括号加减乘除表达式的类,Main函数为项目程序入口。
- Java计算器界面设计实现代码:
package Calculator;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame{
private double result=0;
private int count=0;
public Calculator() {
this.setSize(330,399);
this.setTitle("计算器");
init();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init() {
this.setLayout(new BorderLayout());
JTextField textField=new JTextField();
textField.disable();
textField.setPreferredSize(new Dimension(this.getWidth(),50));
this.add(textField,BorderLayout.NORTH);
JPanel panel=new JPanel();
panel.setLayout(new BorderLayout());
this.add(panel, BorderLayout.CENTER);
JPanel panelN=new JPanel();
panelN.setLayout(new GridLayout(1,6));
JButton MC=new JButton("MC");
JButton MR=new JButton("MR");
JButton M0=new JButton("M+");
JButton M1=new JButton("M-");
JButton MS=new JButton("MS");
JButton M=new JButton("M");
panelN.add(MC);panelN.add(MR);panelN.add(M0);
panelN.add(M1);panelN.add(MS);panelN.add(M);
panel.add(panelN,BorderLayout.NORTH)