问题描述

代码实现

import javax.swing.*;
import java.awt.*;public class MyCalc extends JFrame
{private void initnumPanel1(){JPanel numpanel1 = new JPanel();//数字区域面板1JPanel numpanel2 = new JPanel();//数字区域面板2JPanel numpanel3 = new JPanel();//数字区域面板3//初始化面板一numpanel1.setBounds(400, 150, 290, 260);numpanel1.setLayout(new GridLayout(5,4,2,2));String[] titles1 = {"MC","MR","MS","M+","<-","CE","C","+-","7","8","9","/","4","5","6","*","1","2","3","-"};JButton[] buttons1 = new JButton[20];for(int i = 0;i<titles1.length ;i++){buttons1[i] = new JButton(titles1[i]);buttons1[i].setBackground(Color.lightGray);numpanel1.add(buttons1[i]);}//初始化面板二numpanel2.setBounds(691, 150, 80, 206);numpanel2.setLayout(new GridLayout(4,1,2,2));String[] titles2={"M-","√","%","1/x"};JButton[] buttons2=new JButton[4];for(int i = 0;i<titles2.length ;i++){buttons2[i] = new JButton(titles2[i]);buttons2[i].setBackground(Color.lightGray);numpanel2.add(buttons2[i]);}//初始化面板三numpanel3.setBounds(400,410,290,52);numpanel3.setLayout(new GridLayout(1,2));JButton buttons3=new JButton("0");buttons3.setBackground(Color.lightGray);JPanel numpanel4 = new JPanel();numpanel4.setLayout(new GridLayout(1,2));JButton[] buttons4 = new JButton[2];String[] titles3={".","+"};for(int i = 0; i<titles3.length;i++){buttons4[i] = new JButton(titles3[i]);buttons4[i].setBackground(Color.lightGray);numpanel4.add(buttons4[i]);}numpanel3.add(buttons3);numpanel3.add(numpanel4);//将最特殊的等号按钮加进屏幕JButton equ = new JButton("+");equ.setBounds(691, 357, 80, 106);equ.setBackground(Color.lightGray);this.add(equ);this.add(numpanel1);this.add(numpanel2);this.add(numpanel3);}private void initalgPanel2(){//左边下方运算符按钮部分JPanel algpanel1 = new JPanel();algpanel1.setBounds(20, 203, 363, 260);algpanel1.setLayout(new GridLayout(5,5,2,2));String[] titles4 = {"","Inv","ln","(",")","Int","sinh","sin","x^2","n!","dms","cosh","cos","x^n","n√x","π","tanh","tan","x^3","3√x","F-E","Exp","Mod","log","10^n"};JButton[] buttons5 = new JButton[25];for(int i = 0;i<titles4.length;i++){buttons5[i] = new JButton(titles4[i]);buttons5[i].setBackground(Color.lightGray);algpanel1.add(buttons5[i]);}//右边上方单选按钮选项集控件JPanel algpanel2 = new JPanel();algpanel2.setBounds(20, 160, 363, 52);algpanel2.setLayout(new GridLayout(1,3));JRadioButton angel = new JRadioButton("度");JRadioButton radian = new JRadioButton("弧度");JRadioButton grad = new JRadioButton("梯度");algpanel2.add(angel);algpanel2.add(radian);algpanel2.add(grad);this.add(algpanel2);this.add(algpanel1);}private void inittextPanel3(){TextField text=new TextField();text.setLocation(20, 10);text.setSize(750,135);this.add(text);}public MyCalc(){setSize(800,550);setTitle("科学计算器");setLayout(null);initnumPanel1();initalgPanel2();inittextPanel3();setVisible(true);}public static void main(String[] args){MyCalc calc = new MyCalc();}
}

结果展示

过程中遇到的问题
1.在设置panel的位置时,可以选择三种不同的函数
setLocation();
setSize();
setBounds();
通过查看源码可以得知,setSzie()、setLocation()这两个函数在内部还是调用了setBound()函数,所以在所有面板定位时我都选择了setBound()函数来设置。
2.面板使用GridLayout时可以进行嵌套使用。

3.在输入字符不合法时会出现:
Save could not be completed.

《解决办法请点击

java作业:用GUI实现一个科学计算器的设计相关推荐

  1. 基于qt的计算机论文,基于qt的科学计算器的设计与实现本科毕业论文.doc

    基于qt的科学计算器的设计与实现 摘 要 随着科技的飞速发展,人类已经进入信息化的大时代.信息技术发展更是日新月异,计算器已经进入而且融入人们生活的各个领域,在现代生活中无处不在,大型复杂的计算是人脑 ...

  2. c语言课程设计报告-计算器的实现,C语言课程设计--一个简易计算器的设计与实现.doc...

    C语言课程设计--一个简易计算器的设计与实现 扬 州 大 学 ------------------1 程序设计内容:------------------1 课程设计所补充的内容:补充的函数或算法--- ...

  3. java:用Swing做一个普通计算器

    用Swing做一个普通计算器 用swing做更加复杂的计算器 https://blog.csdn.net/dark_souls/article/details/89672759 由于上一篇文章用的一个 ...

  4. 共享一个科学计算器(js版本)

    效果图: 代码如下,可将代码存为html.用浏览器直接运行,或者点击'运行代码'按钮直接运行 <HTML><HEAD><TITLE>科学计算器</TITLE& ...

  5. java作业 温度换算,温度换算-温度转换-温度计算器

    温度换算 快速 摄氏 (°C) / 华氏 (°F) 转换: 换算工具 在其中一个框输入数值 °C: °F: 或者用 互动温度计, 或者用这个方法: °F to °C 减 32,然后乘以 5,然后除以 ...

  6. Matlab中用GUI做计算器,怎样用MATLAB中的GUI做一个简单计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...

  7. MATLAB中计算器的设立,怎样用MATLAB中的GUI做一个简单计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...

  8. Matlab GUI编程技巧(十九)【实战二】:超强科学计算器的设计,功能齐全

  9. Java+MySQL(GUI)书店信息管理系统的设计和实现

    点我跳转下载资源包(项目文件+设计报告) 本人原创自制@ 备用链接 资源使用方法:数据库是MySQL,建议使用eclipse导入项目,需要在项目数据库连接代码中修改自己本地MySQL对应的用户名和密码 ...

最新文章

  1. Python机器学习实践指南pdf (中文版带书签)、原书代码、数据集
  2. oracle创建表分区表,oracle创建分区表
  3. binary_search函数
  4. .net swf 上传组件
  5. html怎么在图片上加文字_怎么把图片文字转换成word文档
  6. 雷兽的数据库CAP乱谈之(一)阐述
  7. linux 磁盘uuid获取
  8. 使用jQuery的blockUI来实现页面回传数据时的等待页面
  9. 程序人生:程序员做外包“前途“,“技术“,“经验“如何决策
  10. python中logging模块的一些简单用法
  11. python简单程序实例-python下10个简单实例代码
  12. linux重新开始学习
  13. C++ 性能优化篇三《测量性能》
  14. 皮尔森相关系数Pearson correlation coefficient
  15. 教你如何用python轻轻松松解析XML和PDF,一文就够了,赶紧码住!!!
  16. Qt 教程(传智教育)
  17. 虚拟机如何进行备份和迁移?
  18. 服务器——SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复办法
  19. 美股投资指南 – 网上美股开户其实很简单
  20. composer install 中出现用户名密码错误问题的解决方法

热门文章

  1. linux环境下shellcode的编写:32位和64位
  2. 数值分析-计算机中的数系与运算特点
  3. 通信原理第四版(张辉)复习笔记
  4. android访问ipv6地址格式,IPV6地址格式正则表达式
  5. qiankun 部署微前端-vue2(一)
  6. HCIA课程学习笔记
  7. Linux 下的数框框任务管理器 - 仿Win10 风格的SysMonTask
  8. 实是球事APP竞彩推荐 周三 003 亚冠:[3]济州联队 VS 江苏苏宁[2]
  9. 降雨对下垫面水分分配格局及地貌影响研究解决方案
  10. 在CentOS7.6搭建ossec server2.8.3