• tips:最近因为课程需要,用JavaSwing做了一个简易计算器,代码十分简单,有需要的可以搬走。

过程

  1. 先创建JFrame容器,采用水平布局。作为总的框架。
  2. 然后用 create_button 方法,循环创建按钮,并设置大小。
  3. 创建 add_button 方法,将按钮添加到面板上。
  4. 创建 add_listener 方法,给每个按钮增加按钮监听。
  5. 通过 set_text 方法,设置显示的文本。

最终结果如图


代码如下

package Calculator;
import javax.swing.JFrame;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JTextField;import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;/*** 先设计出整个计算器的框架* 在实现功能* @author asus**/
public class Calculator {//静态变量,设置输入框文本。static String input = "";public static void main(String[] args) {// TODO Auto-generated method stubJFrame f = new JFrame();f.setSize(250,230);f.setLocationRelativeTo(null);//设置界面水平布局f.setLayout(new FlowLayout());String[] name = {"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};JButton[] bts = new JButton[17];JTextField tf = new JTextField();tf.setPreferredSize(new Dimension(150,30));f.add(tf);create_button(name,bts);add_button(bts, f);add_listener(tf, bts, name);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setVisible(true);}//创建按钮,用数组接收。public static void create_button(String[] name,JButton[] bts){JButton bt = new JButton("clear");bts[0] = bt;for(int i=0;i<name.length;i++){JButton b = new JButton(name[i]);//设置按钮大小b.setPreferredSize(new Dimension(50,30));bts[i+1] = b;}}//将按钮添加到面板上。public static void add_button(JButton[] bts,JFrame f){for(int i=0;i<bts.length;i++){f.add(bts[i]);}}//增加按钮监听public static void add_listener(JTextField tf,JButton[] bts,String[] name){for(int i=0;i<bts.length;i++){String text = bts[i].getText();bts[i].addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubset_text(tf,text);}});}}//设置文本框的显示文字以及计算结果public static void set_text(JTextField tf,String s){if(s.equals("=")){//进行字符串表达式的运算ScriptEngineManager scriptEngineManager = new ScriptEngineManager();ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("nashorn");try{input = String.valueOf(scriptEngine.eval(input));tf.setText(input);}catch(ScriptException e){e.printStackTrace();}}else if(s.equals("clear")){input = "";tf.setText(input);}else{input = input + s;tf.setText(input);}}
}

最后改一下包名就能够直接用了。

用JavaSwing 实现一个计算器相关推荐

  1. 基于JavaSwing的高级计算器

    开发环境 eclipse+jdk1.8 系统简介 本系统是一个Java开发的高级计算器,可以实现工程计算类,以及平方根,开根号,加括号运算等等功能,具体可看演示视频,本系统无数据库! 演示视频 基于J ...

  2. input点击事件不能用_用js简单写一个计算器

    嗨,大家好,今天给大家带来的是一个计算器 首先要知道我们常用的计算器都有哪些按键,有'0~9','+' ,' -' , '*', '/',还有'=' 和'.',基本是这些按键,然后我们去创建一些按键. ...

  3. 程序员修仙之路-数据结构之 CXO让我做一个计算器

    菜菜呀,个税最近改革了,我得重新计算你的工资呀,我需要个计算器,你开发一个吧 CEO,CTO,CFO于一身的CXO X总,咱不会买一个吗? 菜菜 那不得花钱吗,一块钱也是钱呀··这个计算器支持加减乘除 ...

  4. 我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算。Java洛谷传智杯

    题目描述: 我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算. 输入格式:输入一个字符串,由一个 0 到 1023 之间的整数,一个单位名称(大写字母),一个 ...

  5. java编写某计算器控制台程序_用java程序编写一个计算器

    点击查看用java程序编写一个计算器具体信息 答:给你一个参考,希望不要被百度吞了当晚餐 import java.awt.BorderLayout; import java.awt.GridLayou ...

  6. java语言计算器怎么写_求助,一个计算器的括号功能怎么写啊。

    求助,一个计算器的括号功能怎么写啊. import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java. ...

  7. python tkinter计算器实例_Python+tkinter使用80行代码实现一个计算器实例

    Python+tkinter使用80行代码实现一个计算器实例 本文主要探索的是使用Python+tkinter编程实现一个简单的计算器代码示例,具体如下. 闲话不说,直奔主题.建议大家跟着敲一遍代码, ...

  8. 女朋友学高数,我花了 15 分钟用栈给她写了一个计算器 | 原力计划

    作者 | 天才程序YUAN 责编 | 夕颜 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 前记 女朋友说:"高数好难,看我最近挺辛苦的,你送我一个礼物给 ...

  9. 按编译原理的思路设计的一个计算器

    (周游[http://www.cnblogs.com/naturemickey]版权所有,未经许可请勿转载) 首先看一下这个计算器的功能: CALC> set a = 1; b = 2 CALC ...

最新文章

  1. 盘它:1200 天积淀,超 750 篇干货,为你甄选这 100 + 篇精华!
  2. 简单实用一分钟上手级权限控制
  3. 前端小demo——全选和全不选
  4. webpack+react+redux+es6开发模式---续
  5. 永久免费!原型设计利器摹客RP正式发布
  6. Docker容器安全性分析
  7. oledbdataadapter 取不到数据 plsql能取到 date_Python3 CookBook | 数据结构和算法(二)...
  8. 具有亲和力的文字隐藏方法
  9. 190520每日一句
  10. 人脸识别5.2- insightface人脸3d关键点检测,人脸68个特征点、106个特征点;人脸姿态角Pitch、Yaw、Roll、
  11. 助教日志—请沈航13级同学将GIT地址和CNBLOG地址发到这篇博文的评论中
  12. 企业财务数据分析指标
  13. 推进企业使用正版软件工作部际联席会议第四次全体会议(2010)
  14. MATLAB快速读取STL文件
  15. 云服务系列文章(一) 阿里云和AWS
  16. MySQL如何查询表中重复的数据
  17. 2022CCPC江苏省赛题解ACIJKL
  18. 你有Gmail邮箱吗?
  19. Html+Css实现九大行星动画效果
  20. 网狐提示您已经在房间,无法进入新房间解决办法

热门文章

  1. 《血色浪漫》爆笑语录
  2. HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇...
  3. jquery.metisMenu.js插件
  4. firewall-cmd设置NAT转换
  5. win10 删除旧系统windows文件夹,提示需要管理员权限,更改时无法枚举容器中的对象,访问被拒绝,怎么也删不了
  6. (mysql8.0.22) 本地计算机上的Mysql服务启动后停止,某些服务再未有其它服务或程序使用时自动停止
  7. 小火山视频-有趣有料有亮点的视频
  8. 谈谈游戏中新手引导是如何制作的
  9. BUI 单页路由 学习笔记
  10. 网址转二维码,如何批量将网址转为二维码