在做完xp画板后对计算器进行了一次优化改进
图片:
首先是优化了界面的样式和代码,界面采用了默认的边框布局
private void showUI() {
// TODO Auto-generated method stub
JFrame jf = new JFrame();
jf.setTitle("计算器");
jf.setSize(new Dimension(220, 350));
jf.setDefaultCloseOperation(3);
jf.setLocationRelativeTo(null);
jf.setResizable(false);
createBackground(jf);
createMenuPane(jf);
createShowPane(jf);
createFuctionPane(jf);
jf.setVisible(true);
}
在设计界面上加入了菜单栏,以及增加了一些功能按钮
private void createMenuPane(JFrame jf) {
// TODO Auto-generated method stub
JMenuBar jm = new JMenuBar();
String [] array = {"查看","编辑","帮助"};
String [][] arrayItem = {{"标准型","科学型","程序员"},{"复制","粘贴"},
{"查看帮助","开发者"}};
MenuListener ml = new MenuListener();
//利用数组进行循环,创建JMenu对象
for(int i=0;i<array.length;i++){
JMenu menu = new JMenu(array[i]);
for(int j=0;j<arrayItem[i].length;j++){
JMenuItem jbm = new JMenuItem(arrayItem[i][j]);
menu.add(jbm);
jbm.addActionListener(ml);
}
jm.add(menu);
}
jf.add(jm,BorderLayout.NORTH);
}
这是菜单栏的代码,虽然对于查看和编辑栏的功能还没有实现
private void createShowPane(JFrame jf) {
// TODO Auto-generated method stub
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
text1.setPreferredSize(new Dimension(200, 50));
text1.setEditable(false);
text1.setText("0");
text1.setHorizontalAlignment(JTextField.RIGHT);
Font font1 = new Font("宋体", Font.BOLD, 20);
text1.setFont(font1);
panel.add(text1);
panel.setOpaque(false);
jf.add(panel, BorderLayout.CENTER);
}
文本显示框的代码
private void createFuctionPane(JFrame jf) {
// TODO Auto-generated method stub
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(220,220));
panel.setLayout(new BorderLayout());
JPanel NumP = new JPanel();
NumP.setLayout(new FlowLayout(FlowLayout.LEFT,7,7));
// 定义一个字符串数组
String[] s1 = { "mc", "mr", "ms", "m+","back", "ce", "c",
"zhengfu", "7", "8", "9", "chu", "4", "5",
"6", "cheng", "1", "2", "3", "jian", "0", "dian", "jia" };
//循环数组
for(int i=0;i<s1.length;i++){
//实例化ImageIcon的对象
ImageIcon image = new ImageIcon(this.getClass().getResource(s1[i]+".png"));
//System.out.println(image);
JButton jbu = new JButton(image);
jbu.setActionCommand(s1[i]);
if(s1[i].equals("0")){
jbu.setPreferredSize(new Dimension(73,27));
}else{
jbu.setPreferredSize(new Dimension(34,27));
}
//给事件源jbu添加一个动作监听器方法,绑定事件处理类的对象cl
jbu.addActionListener(cl);
NumP.add(jbu);
}
panel.add(NumP,BorderLayout.CENTER);
JPanel FucP = new JPanel();
FucP.setLayout(new FlowLayout(FlowLayout.LEFT, 7, 7));
FucP.setPreferredSize(new Dimension(50,0));
String[] s2 = { "m-", "gh", "bfh", "fs", "dh" };
//循环数组
for(int i=0;i<s2.length;i++){
//实例化ImageIcon的对象
ImageIcon image = new ImageIcon(this.getClass().getResource(s2[i]+".png"));
JButton jbu = new JButton(image);
//设置按钮的动作命令
jbu.setActionCommand(s2[i]);
if(s2[i].equals("dh")){
jbu.setPreferredSize(new Dimension(34,61));
}else{
jbu.setPreferredSize(new Dimension(34,27));
}
//给事件源jbu添加一个动作监听器方法,绑定事件处理类的对象cl
jbu.addActionListener(cl);
FucP.add(jbu);
}
panel.add(FucP, BorderLayout.EAST);
jf.add(panel, BorderLayout.SOUTH);
}
功能按钮的代码,可以实现基础四则运算和√,M+,M-等复杂运算,
其中由于由于文本框和运算监听器反复使用所以设置为了属性
private JTextField text1 = new JTextField();
private calListener cl = new calListener(text1);
分享到:
相关推荐
5. 精度控制:考虑到51单片机的硬件限制,优化版计算器可能在保证基本计算精度的同时,对浮点运算进行了优化,以适应单片机的处理能力。 6. 错误处理:为了提高用户体验,程序可能会包含对无效输入或运算错误的检测...
加强版计算器基于.NET(C++),是一款利用C++编程语言在.NET框架下开发的高级计算工具。此计算器不仅具备基础的四则运算功能,还扩展到了更复杂的科学计算领域,为用户提供了一个更为强大和全面的计算环境。对于.NET...
优化版的十六进制计算器通常包含了更多的功能和改进,比如提高运算速度、增强界面用户体验、增加对多种进制转换的支持等。汉化版则意味着这款计算器已经进行了语言本地化处理,使得非英文用户也能方便地理解和使用...
网页版计算器代码HTML手机计算器是一种基于HTML、CSS和JavaScript实现的计算工具,它可以在网页上为用户提供基础的数学运算功能,如加法、减法、乘法和除法。这样的计算器设计简洁,易于使用,尤其在没有物理计算器...
特别是在进行大量计算或者需要长时间工作的场景下,电脑版计算器的舒适度和功能性更胜一筹。 此外,对于教育环境而言,这款软件可以方便教师在课堂上演示计算过程,学生也可以通过回放计算步骤来加深理解。同时,它...
"装机版计算器"通常指的是一个特别设计的计算器软件,专为个人计算机系统安装而优化。这类计算器可能包含了丰富的功能,不仅限于基本的加、减、乘、除运算,还可能包括更复杂的数学计算,如对数、指数、三角函数、...
卡西欧fx-82系列在中学阶段被广泛使用,因此这款PC版计算器特别适合学生用于日常学习,帮助他们解决代数、几何、三角函数等各类数学问题。其功能不仅限于基础运算,还包括科学计算,如对数、指数、根式、矩阵运算等...
在本资源中,我们主要关注的是"C#计算器代码优化版"。这通常指的是一个使用C#编程语言编写的计算器程序,可能是一个简单的控制台应用程序或者更复杂的GUI应用,旨在实现基本的数学运算,如加、减、乘、除。开发者对...
网页版计算器是一种基于HTML、CSS和JavaScript实现的交互式计算工具,它允许用户在网页上进行简单的数学运算。本项目的核心在于使用HTML构建计算器的界面布局,CSS进行样式设计,以及JavaScript来处理用户的输入和...
【JS版计算器源码】是一种基于JavaScript编程语言实现的计算器应用程序,主要应用于各种现代主流浏览器,包括IE8、360浏览器、Firefox、Chrome、Safari、Opera、傲游、搜狗以及世界之窗等。这个计算器源码是用原生...
尽管这个计算器可能还有优化的空间,但作为初学者的起点,它提供了一个完整的实践环境,能够帮助学习者逐步建立起Web开发的基础技能。在实践中,可以尝试添加更多功能,如科学计算模式、历史记录等,进一步提升编程...
"Androi改进版计算器"是一个针对Android平台进行优化设计的计算器应用,它不仅具备基本的计算功能,还加入了高级特性,如括号运算和优先级处理,以及友好的用户交互提示,极大地提升了用户的使用体验。 首先,我们...
Java版计算器源代码是基于Java Swing库开发的一个基础计算应用程序,适合初学者学习和实践。Swing是Java标准版(J2SE)的一部分,提供了一组丰富的组件和工具,用于构建图形用户界面(GUI)。本项目的核心在于如何...
【标题】"JAVA版计算器+源码" 描述了这是一个基于Java编程语言实现的计算器项目。这个计算器可能包含了基本的算术运算,如加、减、乘、除,以及可能的高级功能,如求平方根、对数或幂运算。源码的提供使得用户能够...
《C++命令行版计算器详解》 在编程领域,创建一个命令行版的计算器是一项基础且重要的练习,它可以帮助我们理解和掌握基本的输入输出处理、语法解析以及计算逻辑。本篇将详细介绍如何使用C++语言构建一个支持连续...
JavaScript网页版计算器是一种基于Web的计算工具,利用JavaScript这门客户端脚本语言实现。JavaScript,简称JS,是由 Netscape 公司开发的,主要用于增强网页的交互性,它被广泛应用于网页和应用开发,实现动态内容...
"Java版计算器小程序"就是这样一个项目,它旨在实现基本的数学运算,如加、减、乘、除,以及可能的括号处理和浮点数计算。下面我们将详细探讨这个项目中的关键知识点。 1. **Java基础**:首先,你需要熟悉Java的...
在这个"VB行列式计算器优化版"项目中,我们看到它被用来构建一个能够计算行列式的工具。行列式是线性代数中的一个重要概念,对于N阶方阵,它是一个标量值,可以反映出矩阵的一些关键性质,如是否可逆、特征值等。 ...
【Android版计算器】是针对移动设备开发的一款基本的计算应用,它实现了加法、减法、乘法、除法以及求余数等基础数学运算。该计算器应用旨在为用户提供便捷的算术操作,满足日常生活和工作中简单的计算需求。尽管...
**JavaScript网页版计算器详解** JavaScript,作为Web开发中的重要脚本语言,被广泛用于实现网页的动态交互功能。本教程将深入讲解如何利用JavaScript构建一个简单的网页版计算器,这对于初学者来说是一个很好的...