我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java中怎么利用gui实现一个计算器小程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java中怎么利用gui实现一个计算器小程序

java中怎么利用gui实现一个计算器小程序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

代码:

package gui;  import java.awt.*;      //  这个是java的gui编程里面一个很重要的包import java.awt.event.*;      //  用来处理事件所需要import java.util.Stack;        //  栈 , 我用来处理运算的  public class Calculator extends Frame implements ActionListener{          private static final long serialVersionUID = 1L;  // 这个是用来控制版本的序列化   int frame_width = 1000,frame_height = 400;  //设置整个框架的长宽  Panel panel_textfield,panel_number,panel_op,panel_other;  // 整个计算器布局我把它分成两个面板 , 一个是上面的输入框区 , 一个是下面的按钮区 , 然后按钮区又分成了左边和右边两个区 , 所以有三个panel   Button [] number_buttons;  // 声明数字按钮(也就是上面说的左边区)   Button [] op_buttons;      // 声明操作符按钮(也就是上面说的右边区)   TextField textfield;        // 输入框           public Calculator() {  super("计算器");    // 完成实例域参数的初始化,调用构造器的语句只能作为另一个构造器(通常指的是子类构造器)的第一条语句出现    init();       // 自己写的初始化方法    setLayout();   // 设置布局管理方式   setBackground();       // 设置背景   setBounds();         // 设置位置    setFonts();          // 设置字体   addButtons();      // 添加按钮  textfield.setEditable(false);    // 设置输入框为不可手动编辑 , 只能通过按钮输入  */  addWindowListener  // 添加一个窗口监听器,便于按下关闭按钮时能关闭窗口 , 否则只能在ide里面停止调试来关闭程序        (            new WindowAdapter() {                public void windowClosing(WindowEvent e) {                    System.exit(0);                }            }        );  setVisible(true);   // 设置框架为可见,不然画了框你也看不见...一定要放在最后面,放在前面的话,后面对窗体有改动得缩放拉伸一下窗体进行窗体重绘才能出现效果 , 我在这里卡了很久....    }         public void init() {        panel_textfield = new Panel();         // 实例化一个panel   panel_number = new Panel();            // 实例化一个panel   panel_op = new Panel();                // 实例化一个panel   panel_other = new Panel();             // 实例化一个panel    textfield = new TextField(frame_width);// 实例化一个文本输入框    setResizable(false);                   // 设置整个窗体为不可缩放拉伸      add(panel_textfield);                 // 往窗体中添加输入框面板   add(panel_other);                     // 往窗体中添加按钮面板      panel_textfield.add(textfield);       // 在输入框面板中添加输入框    panel_other.add(panel_number);        // 在下面面板中添加数字按钮面板    panel_other.add(panel_op);            // 在下面面板中添加操作符按钮面板   } public void setLayout() {  setLayout(new GridLayout(2,1,4,4));       // 设置窗体布局方式为网格布局,2*1的网格,网格之间间距为4个像素    panel_textfield.setLayout(null);       // 输入框面板就一个组件,所以设置null    panel_other.setLayout(new GridLayout(1,2,4,4));  // 下面面板因为分成左边的数字区和右边的操作符区,所以设置1*2的网格布局方式,间距4个像素    panel_number.setLayout(new GridLayout(5,3,4,4));  //  数字区布局设置为5*3的网格布局    panel_op.setLayout(new GridLayout(3,1,4,4));  // 操作符区设置为3*1的网格布局方式   }          public void setBackground() {  // 设置背景,没什么好说的....  panel_textfield.setBackground(Color.red);    panel_number.setBackground(Color.green);  panel_op.setBackground(Color.blue); }          public void setBounds() {   // 设置组件位置,没什么好说的....   setBounds(0, 0, frame_width, frame_height);  textfield.setBounds(0, 0, frame_width, frame_height / 2); }          public void addButtons() {  String [] titles1 = {"/", "*", "-",   // 数字区按钮的label值        "7", "8", "9",       "4", "5", "6",       "1", "2", "3",       "0", ".", "c"};  String [] titles2 = {"x", "+", "="};   // 操作符区按钮的label值    number_buttons = new Button[15];   // 申请15个按钮对象    op_buttons = new Button[3];        // 申请3个按钮对象      for(int i = 0; i < this.number_buttons.length; i++) {   number_buttons[i] = new Button(titles1[i]);   panel_number.add(number_buttons[i]);  //  往数字区中添加按钮     number_buttons[i].addActionListener(this);  // 按钮的事件监听器,处理方法为this,也就是下面重载的actionPerformed()方法,这个方法必须被重载  }    for(int i = 0; i < this.op_buttons.length; i++) {   op_buttons[i] = new Button(titles2[i]);   // 往操作符区中添加按钮   panel_op.add(this.op_buttons[i]);   op_buttons[i].addActionListener(this);   // 按钮的事件监听器,处理方法为this,也就是下面重载的actionPerformed()方法,这个方法必须被重载  }   }  @Override   // 对ActionListener接口的此方法进行重载  public void actionPerformed(ActionEvent e) {  Button button = (Button) e.getSource();   // 获得按钮来源     for(int i = 0; i < 14; i++) {    if(button == number_buttons[i] || button == op_buttons[1]) {    textfield.setText(textfield.getText() + button.getLabel());    return;   }  }      if(button == number_buttons[14]) {   textfield.setText("");   return;  }      if(button == op_buttons[0]) {   String s = textfield.getText();   if(s.length() > 0)    textfield.setText(s.substring(0, s.length() - 1));   return;  }        if(button == op_buttons[2]) {   textfield.setText(getResult());   return;  } }   public String getResult() {      String s = textfield.getText();   // 先获得输入的字符串  String num = "";  Stack<Double> nums = new Stack<Double>();  Stack<String> ops = new Stack<String>();      for(int i = 0; i < s.length(); i++) {   String temp = s.charAt(i) + "";   if(temp.matches("[0-9]") || temp.matches("[.]")) {    num += temp;   }   else if(temp.matches("[*+]") || temp.matches("[-]") | temp.matches("[/]")) {    if(!num.equals(""))     nums.push(Double.parseDouble(num));    if(ops.isEmpty() || cmpLevel(temp,ops.peek())) {     ops.push(temp);    }    else {     Double num1 = nums.pop();     Double num2 = nums.pop();     String op2 = ops.pop();     nums.push(compute(num2,num1,op2));     i--;    }     num = "";   }  }   while(!ops.isEmpty()) {      if(!num.equals("")) {    nums.push(compute(nums.pop(),Double.parseDouble(num),ops.pop()));    num = "";   }   else {    Double num1 = nums.pop();    Double num2 = nums.pop();    nums.push(compute(num2,num1,ops.pop()));   }     }  return nums.pop().toString(); }    public boolean cmpLevel(String s1,String s2) {  if(s1.equals("+") || s1.equals("-")) {   return false;  }  else {   if(s2.equals("+") || s2.equals("-"))    return true;   return false;  } }   public void setFonts() {  panel_number.setFont(new Font("微软雅黑",Font.PLAIN,24));  panel_op.setFont(new Font("微软雅黑",Font.PLAIN,24));  panel_other.setFont(new Font("微软雅黑",Font.PLAIN,24));  textfield.setFont(new Font("微软雅黑",Font.PLAIN,48)); }   public static void main(String [] args) {  new Calculator(); } }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java中怎么利用gui实现一个计算器小程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java中怎么利用gui实现一个计算器小程序

java中怎么利用gui实现一个计算器小程序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码:package gui; i
2023-06-20

Java中怎么实现一个计算器小程序

Java中怎么实现一个计算器小程序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:package tst.jframe; import java.awt
2023-06-20

怎么在java中利用GUI实现一个加法计算器

怎么在java中利用GUI实现一个加法计算器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据
2023-06-14

微信小程序中怎么实现一个计算器功能

微信小程序中怎么实现一个计算器功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。目录结构第一次进到页面它的目录结构如下:需要注意的问题(1)添加的新页面文件,都
2023-06-20

怎么在Java中利用TreeMap实现一个排序算法

怎么在Java中利用TreeMap实现一个排序算法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。TreeMap 和 HashMap 用法大致相同,但实际需求中,我们需要把一
2023-05-31

利用java怎么实现一个冒泡排序算法

利用java怎么实现一个冒泡排序算法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java 算法之冒泡排序的实现代码:package cn.songxinqia
2023-05-31

怎么利用Java实现一个希尔排序算法

这期内容当中小编将会给大家带来有关怎么利用Java实现一个希尔排序算法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java 实现希尔排序Java代码 /*希尔排序(Shell Sort)是插入排序的一种
2023-05-31

利用java 怎么实现一个归并排序算法

本篇文章给大家分享的是有关利用java 怎么实现一个归并排序算法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 归并排序算法,顾名思义,是一种先分再合的算法,其算法思想是将要排
2023-05-31

微信小程序中如何实现一个计算器功能

这期内容当中小编将会给大家带来有关微信小程序中如何实现一个计算器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。index.wxml
2023-06-20

怎么在android中利用Socket实现一个聊天小程序

本篇文章为大家展示了怎么在android中利用Socket实现一个聊天小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下服务器端:package org.hwq.echo; impo
2023-05-31

小程序怎么实现计算器功能

本篇内容介绍了“小程序怎么实现计算器功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现模拟手机上的计算器,输入即可运算本页面是做一个计算
2023-06-08

利用Java怎么实现一个整数乘积计算功能

利用Java怎么实现一个整数乘积计算功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。计算机计算整数乘积的原理:实现代码:package math;public
2023-05-31

怎么在java中利用Runnable实现一个线程

怎么在java中利用Runnable实现一个线程?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用
2023-06-14

linux中怎么利用timerfd_create实现一个计时器

linux中怎么利用timerfd_create实现一个计时器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。timer_poll.h代码如下:/* * Fil
2023-06-09

怎么用C#实现简单的计算器小程序

这篇文章主要介绍“怎么用C#实现简单的计算器小程序”,在日常操作中,相信很多人在怎么用C#实现简单的计算器小程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C#实现简单的计算器小程序”的疑惑有所帮助!
2023-06-29

Python中怎么实现一个个税计算器

Python中怎么实现一个个税计算器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。计税方法科普个税方法这里需要知道的知识点:1.个税起征点调到 5000;2.累积预扣法:本
2023-06-16

怎么利用java实现一个二分法算法

这篇文章给大家介绍怎么利用java实现一个二分法算法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。java 二分法算法1、前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序2、原理:将数组分为
2023-05-31

利用java怎么实现一个倒计时功能

这期内容当中小编将会给大家带来有关利用java怎么实现一个倒计时功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码如下:package timer;import java.util.Calendar;
2023-05-31

Java中怎么实现一个多线程程序

Java中怎么实现一个多线程程序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java多线程程序设计详细解析一、理解Java多线程Java多线程是这样一种机制,它允许在程序中并
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录