JAVA课程设计——GUI实现简易计算器

这篇具有很好参考价值的文章主要介绍了JAVA课程设计——GUI实现简易计算器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GUI实现简易计算器——JAVA

一.设计任务及要求

任务:设计并实现一个计算器小程序
要求:
  1. 使用图形用户界面
  2. 能在键盘或鼠标上读入数据,并完成加,减,乘,除计算。
  3. 在屏幕上显示一个主菜单。
  4. 提示用户输入相应的数字键,分别执行加,减,乘,除计算功能和结束程序的功能。

二.需求分析:

​ 计算器:首先要有一个键盘和一个显示窗口,键盘至少要包含0-9十个数字键以及“+、-、*、/、=”五个运算符,最好还要有“小数点和清除”按键。窗口用来显示已输入的数字和运算结果,用户可以通过鼠标点击键盘上的按钮,完成基本的实数间的加减乘除运算,同时也可以通过键盘输入数字。

三.总体设计

1.界面设计:

​ 只用一个界面即可完成,启动程序后自动弹出界面,点击关闭即程序结束。界面一律采用Swing类设计,一个窗体里分为两个面板North和Center,North面板在界面最上方,通过一个文本框显示输入的数据和运算结果,清除键可安装在文本框侧边。Center面板在界面中间,安放所有十六个按钮,采用4×4布局。所有按钮添加监听事件,同时对键盘上的数字键添加监听事件。

2.功能实现:

​ 设计一个存放操作符的变量command,一个存放数字的变量num,和一个布尔类型的判断标识符。编写一个calculate计算方法,接受double类型的数据,可以完成加减乘除等五种运算,最后使文本框中的值变为运算结果。标识符初始化为true,当按钮被点击时,首先判断被点击的按钮是否是五个运算符中的任何一个,如果是第一个输入的减号,则将跟在其后的数字设置为负数,如果先输入数字,则后面的减号是减的意思。每输入一个数和一个操作符就调用一次calculate,最后以字符串的形式显示在文本框中。

四.代码详细实现

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * @ClassName: Mycalculator
 * @Auther: Drawin
 * @Date: 2021/12/24 15:33
 * @Description:计算器小程序
 * 要求:使用图形用户界面
 * 能在键盘或鼠标上读入数据,并完成加。减。乘。除计算。
 * 在屏幕上显示一个主菜单。提示用户输入 相应的数字键,分别执行加。减。乘。除计算功能和结束程序的功能。
 */

public class Mycalculator extends JFrame {

    private String[]name={"1","2","3","+","4","5","6","-","7","8","9","*","0",".","=","/"};
    JButton[] jButton= new JButton[name.length];
    private double num=0;
    private String command="=";//运算符
    private boolean start=true;//判断标识符
    private JTextField jTextField = new JTextField(20);//一个文本框,放在外面,不然后面的方法调用不了

    public Mycalculator(){
        Container container = this.getContentPane();

        JPanel jPane1 = new JPanel();//输入框面板
        JPanel jPane2 = new JPanel(new GridLayout(4,4));//键盘面板


        //十七个按钮和监听
        ButtonAction ba = new ButtonAction();
        KeyAction ka = new KeyAction();
        Ce ce1 = new Ce();
        JButton ce = new JButton("CE");
        ce.addActionListener(ce1);
        for (int i = 0; i < name.length; i++) {
            jButton[i]=new JButton(name[i]);
            jButton[i].addActionListener(ba);
            jButton[i].addKeyListener(ka);
            jPane2.add(jButton[i]);//按钮装到面板上
            Font font = new Font("Courier New", Font.BOLD, 22);//按钮太小了,字体调大点
            jButton[i].setFont(font);
        }

        //组装
        jPane1.add(jTextField,BorderLayout.WEST);
        jPane1.add(ce,BorderLayout.EAST);
        jPane1.setBackground(new Color(102, 204, 255));//美化一下
        this.add(jPane1,BorderLayout.NORTH);
        this.add(jPane2,BorderLayout.CENTER);

        this.setVisible(true);//设置可见性
        this.setBounds(300,200,500,400);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置默认窗口关闭事件
    }

    public void calculate(double x){
        if (command.equals("+"))
            num+=x;
        else if (command.equals("-"))
            num-=x;
        else if (command.equals("*"))
            num*=x;
        else if (command.equals("/"))
            num/=x;
        else if (command.equals("="))
            num=x;
        jTextField.setText(""+num);//num是double不是String所以这样转一下
    }

   private class ButtonAction implements ActionListener {//内部类,抽一个按钮监听器出来
       @Override
       public void actionPerformed(ActionEvent e) {
           String input=e.getActionCommand();
           if (input.equals("+")||input.equals("-")||input.equals("*")||input.equals("/")||
                   input.equals("=")){
               if(start){
                   if (input.equals("-")){//负数
                       jTextField.setText(input);
                       start=false;
                   }else
                       command=input;
               }else{
                   calculate(Double.parseDouble(jTextField.getText()));
                   command=input;
                   start=true;

               }
           }else{
               if(start){
                   jTextField.setText("");
                   start=false;
               }
               jTextField.setText(jTextField.getText()+input);
           }

       }
   }

    private  class KeyAction extends KeyAdapter{//继承适配器,不用实现接口的所有方法
        public void keyTyped(KeyEvent e) {
            char key = e.getKeyChar();
            if(key=='0'||key=='1'||key=='2'||key=='3'||key=='4'||key=='5'||key=='6'||key=='7'||key=='8'||key=='9') {
                if(start) {
                    jTextField.setText("");
                    start=false;
                }
                jTextField.setText(jTextField.getText()+key);
            }
            else if(key=='+'||key=='-'||key=='/'||key=='*') {
                if(start) {
                    if(key=='-') {
                        jTextField.setText(String.valueOf(key));
                        start=false;
                    }else
                        command=String.valueOf(key);

                }else {
                    calculate(Double.parseDouble(jTextField.getText()));
                   command=String.valueOf(key);
                    start=true;
                }
            }
        }

    }
private class Ce implements ActionListener{//清空键监听

    @Override
    public void actionPerformed(ActionEvent e) {
        jTextField.setText("");
    }
}


    public static void main(String[] args) {//启动器
     new Mycalculator();
    }
}

五.功能截图

用gui做简单计算机的开发环境,java,开发语言,intellij idea,idea文章来源地址https://www.toymoban.com/news/detail-524299.html

到了这里,关于JAVA课程设计——GUI实现简易计算器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python制作简易计算器(GUI)---Tkinter

    tkinter模块是Python标准的TK GUI工具包接口,可以实现一些较为简单GUI的创建。 麻雀虽小,五脏俱全 TK工具集使用TCL(Tool Command Language)语言开发 运行相同的程序时,运行速度快于pyqt5 组件能满足基本使用 程序界面较简陋 开发时,使用的语句更短更易懂 Python内置的标准库 Qt框

    2024年02月08日
    浏览(47)
  • matlab GUI课程设计——扫雷游戏

    1.熟悉matlab基本的代码编写能力; 2.学会利用matlab GUI设计图形交互界面,方便使用者操作; 1.创建15行×20列的扫雷界面,界面上包括棋子数量统计和炸弹数量设置.炸弹数量越多,扫雷难度越大. 2. 正常扫雷演示: 3. 点击到炸弹后,弹出对话框,可选择关闭程序或者重新开始. 每个按

    2024年02月12日
    浏览(32)
  • Matlab课程设计(GUI)——绘制任意函数图

    MATLAB GUI 编程是一个功能强大的工具,可以帮助我们构建交互式的用户界面并处理用户输入。通过获取编辑框对象的文本内容、设置图形属性和绘制函数图形,实现了按下按钮事件绘制图像的功能。 -可视化绘制 -有平面和立体图像 -可自定范围 -自由度极高 -可二次开发 在ma

    2024年02月03日
    浏览(24)
  • Java课程设计——简易计算器

    1.系统简介 1.1设计背景     随着人们物质生活水平的日益提高,人们对高质量的计算提出了更高的要求。当今世界,是云计算的生活和物联网发展和使用阶段,计算性能的高低和计算的效率直接影响到了人们的生活。对此,使用Java语言开发出一个为人们生活带来便利的计算

    2024年02月08日
    浏览(33)
  • Matlab简易版美图秀秀(GUI界面实现)

    该项目为数字图像处理课程的期末大项目,主要内容是用matlab软件实现一些美图秀秀相关功能,比如对图像进行水平垂直翻转,旋转,裁剪,抠图等基础功能;对图像添加浮雕,艺术噪声,灰度胶片,动感模糊,素描,油画,羽化等滤镜的功能;以及祛痘祛痣,白牙,大眼,

    2024年02月09日
    浏览(21)
  • Java之GUI简单介绍

    前段时间学了GUI,总体上概念还是有点模糊,于是决定花点时间简单整理下。先简单介绍一下GUI,GUI就是图形用户界面。 Java提供了GUI相关的两个API:分别是AWT、Swing。 AWT是最早提供的GUI库,依赖本地平台,界面不好看,功能有限。之后推出了Swing,Swing并没有完全替代AWT,而是

    2024年02月06日
    浏览(22)
  • 【设计模式项目】【GUI计算器】

    由于Java 课程设计已经完成前期的计算器GUI设计,以及功能实现,现在基于之前的基础,进行设计模式的应用,以完善软件设计。 如果还不了解之前GUI设计的童鞋,可以先查看【Java课程设计】【图形界面程序】【计算器】。 使用了以下设计模式: 工厂模式: 工厂模式被用于

    2024年02月11日
    浏览(26)
  • MATLAB GUI图形化界面设计计算器

    MATLAB GUI界面设计教程可以帮助用户创建交互式的图形用户界面,以简化与MATLAB程序的交互过程。以下是一个简化的教程,指导你如何进行MATLAB GUI界面设计: 1. 启动GUIDE或App Designer GUIDE :在MATLAB命令窗口中输入 guide 命令,然后按Enter键启动GUIDE。 App Designer :在MATLAB的“Apps”

    2024年04月23日
    浏览(38)
  • 写一个简单的Java的Gui文本输入窗口,JFrame的简单使用

             JFrame 是指一个计算机语言-java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。 Swing的三个基本构造块:标签、按钮和文本字段;但是需要个地方安放它们,并希望用户知道如何处理它们。JFrame 类就是解决这个问题的—

    2024年01月22日
    浏览(24)
  • python GUI界面制作(简易的查询界面)

    第一次接触python的tkinter库 程序代码:

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包