Java实现简单的计算器


前言

最近在复习着Java Swing的使用,在布局这块反复又看了很久,然后突然发现GirdLayout机器适合来做一个计算器的简单样子,所以花了一点时间做了一下,最后没想到是在处理结果的算法这一块花的时间最多,这个简单的计算器目前来说支持的是加减乘除和括号运算,当然之后可能会扩展三角函数等功能吧。。。。


下面我将从各个模块来展示对应的代码

一、主界面部分

这个部分就是一个展示计算器的界面,只是简单的套用了GirdLayout和几个button(所以最后写完发现好像Swing没有复习到多少hhh)

package com.UI;

import com.UI.Listener.buttonListener;

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

/*
 * 2015-06-10
 */

/***
 * 计算器的主页面的设置
 */
public class calcUI extends JFrame{
   

    JButton resultButton = new JButton("");
    JPanel[] panel = new JPanel[5];
    public calcUI()
    {
   
        setSize(500,400);
        //设置为GirdLayout
        setLayout(new GridLayout(6,1));
        add(resultButton);
        for(int i = 0;i < 5;i++){
   
            panel[i] = new JPanel();
            add(panel[i]);
            //gridLayout
            GridLayout gridLayout = new GridLayout(1,4,3,3);
            panel[i].setLayout(gridLayout);
        }
        //计算器输入
        String [] buttonNames = new String []{
   "<-","(",")","C","7", "8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};
        for (int i=0;i<buttonNames.length;i++) {
   
            JButton jButton = new JButton(buttonNames[i]);
            panel[i/4].add(jButton);
            // 添加监听器来监听计算器
            jButton.addActionListener(new buttonListener(resultButton));
        }
        //config resultButton
        resultButton.setSize(200, 50);
        resultButton.setHorizontalAlignment(SwingConstants.RIGHT);
        resultButton.setEnabled(false);
        setTitle("calcUI");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
    }

    public static void main(String[] args) {
   
        // TODO Auto-generated method stub
        calcUI demo = new calcUI();
        demo.setVisible(true);
    }

}

二、监听器部分

这部分使用的是按钮监听器,通过获取每个按钮对应的文字类型改变上方显示结果按钮给出的文字。

package com.UI.Listener;

import com.UI.Utils.Calc;

import javax.swing.*;
import java.awt.event.
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值