Java计算器设计实现

本文介绍了如何使用Java Swing设计并实现一个支持括号、加减乘除的计算器。涉及的技术包括Java图形界面设计、栈数据结构、lambda表达式以及Java基础。计算器界面可以随窗口大小自适应,并具备标准计算功能,未来计划扩展科学计算模式。
摘要由CSDN通过智能技术生成

需求分析

  • 目的是实现一个基于Java的可以求解带括号加减乘除表达式带界面的计算器。
  • 需要知道的Java技术:Java Swing(Java图形界面设计)、Java集合(栈)、lambda表达式、Java基础等。

设计思路

  1. 实现一个Java计算器界面类
  2. 实现一个Java计算带括号加减乘除表达式的类
  3. 实现主函数调用

设计实现

  • 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.pack();
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		
	}
	
	public void init() {
   //初始化界面
		
		this.setLayout(new BorderLayout()); //总体布局为边框式布局
		
		/*
		 * 总体边框式布局north放置文本框
		 */		
		JTextField textField=new JTextField();
		textField.disable();
		textField.setPreferredSize(new Dimension(this.getWidth(),50));
		this.add(textField,BorderLayout.NORTH);

		/*	
		 * 总体边框式布局center放置@panel(边框式布局)
		 * @panel边框式布局north放置@panelN(网格布局)
		 * @panel边框式布局center放置@panelC(卡片式布局)
		 * @panelC卡片来切换@panel0(标准)和@panel1(科学)两种模式
		 * @panel0,@panel1均为网格布局
		 */					
		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)
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值