【Java】用 Java 的 Swing 组件做一个计算器程序

本文介绍了如何使用Java Swing组件构建一个具备四则混合运算和括号功能的计算器程序。内容包括测试截图、设计要求、实现步骤及源代码。计算器具有图形化界面,能处理异常并确保输入合法。
摘要由CSDN通过智能技术生成


话不多说,先上图

一、测试截图:
  • 四则混合运算测试

在这里插入图片描述
在这里插入图片描述

  • 括号功能测试

在这里插入图片描述
在这里插入图片描述

  • 输入合法性检查测试

在这里插入图片描述
在这里插入图片描述

二、设计要求:
  • 主要用JAVA编写一个计算器,能实现四则混合运算并且带有括号功能息
  • 计算器有图形化界面
  • 能对异常进行处理
  • 检验输入的合法性,对不合法的输入给出具体的提示信息
三、实现步骤:
  • 编写一个Counter类,在构造方法采用JFrame窗体实现界面,并对按钮进行监听
  • 编写监听事件处理方法,其中对按钮分为四类,清零键C,退格键B,等号键和其他按钮,分别对各自的事件进行响应
  • 编写规则检查方法,用户每次触发事件后,程序自动调用该方法对第一行文本框中的公式进行语法检查,且将错误信息提示在第二行文本框中
  • 编写计算方法,调用Java自带类中的方法,实现对字符串的直接计算
四、程序源代码:
package priv.lxm.homework.report04;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;

public class Counter extends JFrame implements ActionListener {
   

    private JTextField text;//用于显示输入的计算公式
    private JTextField textResult;//用于显示计算结果
    private boolean rule=false;//用于表示输入规则是否正确
    private int fBracket=0,lBracket=0;//用于存储公式中的前后括号数
    static ScriptEngine Js=new ScriptEngineManager().getEngineByName("JavaScript");


    private Counter(){
     //构造方法
        setTitle("【CSDN博客:向远方啊】计算器");
        setSize(309,368);
        setResizable(false);//关闭窗体大小调节
        setLocationRelativeTo(null);//计算器在屏幕位置居中
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        Container integralContainer=this.getContentPane();//定义全局容器
        integralContainer.setBackground(new Color(240,255,255));//设置全局背景色
        integralContainer.setLayout(new BorderLayout(0,0));//控制整体边距
        JPanel upContainer=new JPanel();//定义屏幕容器
        JPanel downContainer=new JPanel();//定义键盘容器
        upContainer.setLayout(new GridLayout(2,1,0,0));//设置屏幕容器布局方式
        downContainer.setLayout(new GridLayout(5,4,0,0));//设置键盘容器布局方式
        integralContainer.add(upContainer,BorderLayout.NORTH);//设置全局容器的布局方式
        integralContainer.add(downContainer,BorderLayout.SOUTH);
        Font font=new Font("Times Roman",Font.BOLD,30);
        text=new JTextField();//实例化屏幕文本框
        textResult=new JTextField();
        text.setFont(font);//设置文本框字体格式
        textResult.setFont(font);
        text.setBorder(null);//隐藏文本框边框
        textResult.
  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值