java中,用布局器实现计算器界面 并实现加减乘除等功能,怎样编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中,用布局器实现计算器界面 并实现加减乘除等功能,怎样编程相关的知识,希望对你有一定的参考价值。
参考技术A http://wenku.baidu.com/view/5cfcb42d2af90242a895e5f6.html 参考技术B (Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。* Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
* Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
* Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
J2SE就是做那种桌面安装程序样的,像QQ,WORD那种应用程序。
J2EE 就是做基于Internet的应用程序,像选课系统,企业网站,银行系统之类的。
J2ME就是做嵌入式系统开发的,像手机游戏之类的,像现在流行的android操作系统。
为了让大家能够更快的加入到做项目的队伍,工作室特制定以下培训计划。我们java组现在主要是沿着J2EE这条路线走,主要是这方面项目目前比较多。
一.培训阶段的划分
1. 学习java基础(包括基本语法,面向对象的思想的一些特性,IO,集合框架,jdbc)
2. 学习网页的基础知识(包括html,css,javascript),这些是做好界面的必备知识。
3. 学习javaweb的基础知识(包括jsp,servlet,javabean,MVC,JSTL,EL表达式)
4. 学会使用ssh框架(struts.,hibernate,spring)
二.培训阶段的要求
1.Java基础
1. 大体了解java的运行原理,安装java虚拟机(java虚拟编绎与运行)
2. 熟练掌握java语言基本语法(这个和c语言里面的差不多)
3. 熟练掌握面向对象编程的思想及面向对象的一些基本概念(类,对象,接口,继承,重载,覆盖)
4. 熟练掌握输入输出流(流的概念,文件的读写,终端输入)
5. 熟练掌握集合框架(List,Set,Map)
6. 熟练掌握JDBC连接数据库(sqlserver2000,mysql数据库的使用及连接)
7. 熟练掌握API的使用,熟悉常用类库的使用。
8. 能够编写简单的图形界面程序
这个阶段是j2se的基础知识,特别是面向对象的知识的掌握,类和对象的概念,接口,继承,重载,覆盖,掌握基本的输入输出,然后就是集合框架,List,Set,Map的使用,因为这些在以后的数据库操作中经常将查询结果放在里面,最后就是用jdbc连接数据库,也许之前学过的一些理论都感觉没兴趣,但学了数据库的连接之后,兴趣就来了,因为这是第一次写程序操作数据库。
这个阶段培养人的最大能力就是要勤查API文档,要多去百度,要多向别人请教。
2. 静态网页的制作
1.了解网页的基本知识
2.会写基本的html语言,能够看懂别人写的html
3.会使用表单
4.使用javascript进行客户端验证
这个阶段要掌握一些静态网页的基本知识,学会动手做静态网页。学会用css控制
页面,学会用javascript来进行表单的验证。
3. javaweb基础
1. 搭建开发环境
安装Tomcat,并配置虚拟目录
安装Eclipse,并安装MyEclipse插件
作用MyEclipse新建项目,整合Tomcat服务器,部署项目
2. Jsp的基础语法
了解JSP基本特点
理解JSP的运行机制
熟练使用JSP声明语句
熟练使用JSP Scriptlets
熟练使用JSP表达式
3. JSP指令元素
了解Page,include,taglib指令的使用
了解<jsp:forward><jsp:include><jsp:param><jsp:params>
4. JSP内置对象(9个)
熟练使用JSP内置对象保存属性
熟练JSP属性保存的四个范围(page,request,session,application)
熟练使用request,session对象取得参数值,了解其他各对象常用的方法
5. JavaBean
熟练掌握定义JavaBean,调用JavaBean,设置并获得JavaBean属性,设置JavaBean的范围,移除JavaBean
6. EL表达式
熟练掌握使用EL运算符
熟练掌握EL内置对象
熟练掌握EL存取
7. JSTL标签库
JSTL核心标签库,数据库标签库,I18N格式化标签库,XML标签库和JSTL函数标签库
熟练掌握通过JSTL核心标签库定义变量,输出变量,移除变量
熟练掌握通过数据库标签库完成数据库操作
熟练掌握XML标签库完成 XML文件操作
熟练掌握I18N标签库完成国际化操作
熟练掌握通过JSTL函数标签库完成常用函数操作
8. Servlet开发
熟练掌握如何定义Servlet
理解Servlet的生命周期
熟练掌握HttpServlet的常用方法
熟练掌握使用Servlet的接口
9. Filter开发
熟练掌握如何定义并配置Filter
理解Filter的生命周期
熟练掌握如何添加非法文字过滤器,字符编码过滤器,登录验证过滤器
10. Listener开发
熟练掌握如何定义并配置Listener
熟练掌握 ServletContextListener,ServletContextAttributeListener,HttpSessionListener,
HttpSessionAtrributeListener接口的实现和作用
11. Dao设计模式
了解什么是Dao设计模式以及其特点
熟练掌握如何定义数据库连接类
熟练掌握如何定义Vo类
熟练掌握如何定义Dao接口,Dao类以及Dao工厂类
熟练掌握如何使用Dao实现数据库操作
12. MVC设计模式
了解什么是MVV设计模式
了解Model1和Model2的区别以及优缺点
熟练掌握如何定义视图,模型,控制器部分,用MVC进行开发
这个阶段才是真正的接触了javaweb的知识,要会用javaweb进行动态网页的开发,
这个阶段完成后,就能做一些应用系统的开发了,javaweb也基本上学完了,后面基本上都是些别人根据基础知识做好的框架或组件,我们只要拿来用就行。
4 . ssh框架
1 Struts2基础
了解如何下载并安装Struts2 框架
了解Struts2运行原理
熟练掌握如何新建控制器
熟练掌握如何配置控制器
了解实现Action接口的优点
熟练掌握通过Struts2标签库简化表单
熟练掌握通过继承ActionSupport完成输入校验
熟练掌握页面国际化以及校验错误信息国际化
2 Struts2高级开发
熟练使用Struts2内建的类型转换器
理解服务器端校验的重要性
熟练使用addFieldError来添加校验错误信息
熟练使用struts2校验框架完成输入校验
3 Hibernate持久化
了解什么是ORM映射以及特点
熟练掌握配置Hibernate配置文件
熟练掌握创建持久化类
熟练掌握创建关系映射文件
熟练掌握通过Hibernate框架进行数据库操作
4 Struts2整合Hibernate开发
熟练掌握持久层设计
熟练掌握业务逻辑层设计
熟练掌握struts2 整合hibernate 开发
5 Spring开发
熟练掌握Spring的依赖注入
熟练掌握Spring的自动装配
熟练掌握Spring面向切面编程
框架的发现,提高了软件开发的速度,增强了软件开发的规范性,使人们都按照某一种模式,一种规范去进行开发。这个阶段我们要做的就是学会使用这些框架来进行开发,了解框架的原理,当然有能力的话,根据它的原理,我们可以试着看下它的源码,自己试着写框架。
三.各阶段所要掌握的工具
1.Java基础
1.会用记事本(或EditPlus)编写java程序,在DOS下进行编绎与运行。(初级阶段)
2.会用JCreator编写,编绎,运行。(中级阶段)
3.会用Eclipse,JBuilder,NetBeans其中之一集成开发环境(高级阶段,推荐使用Eclipse)
4.会安装并使用Navicate(mysql的界面环境),sqlserver2000。(数据库)
2. 静态网页的制作
1. 会用记事本(或EditPlus)编写Html语言
2. 会用Dreamweaver进行编写Html语言
3.Fireworks切图
4.Photoshop图片处理
3. javaweb开发
1.Tomcat使用(javaweb服务器)
2.MyEclipse (javaweb开发)
3.JUit单元测试工具
4.PowerDesigner数据库设计工具
5.CVS版本控制工具
6. Rose ,visio UML建模工具
四.各阶段所要掌握的知识点
1.Java基础
(基本要求)
1. 了解Java语言的特征,掌握JDK(Java开发工具包)的安装、目录层次、
环境变量配置,Java程序的实现过程
2.Java语言基础
a). 数据类型:
8种基本类型:byte,char,short,int,long,float,double,boolean
引用类型: 数组, 类,接口
b).结构化语句: if,if--else ,if--else if ,switch--case,while,do--while,for
c).数组
int num[]=; <<==>> int []num=;
3.面向对象的基础
a).类:具有相同属性和行为的一组对象的集合
b).对象:客观存在的或可被描述的抽象对象,具有特定属性和行为的实体。
c).类是对象的模板(原型),对象是类的具体实例
d).抽象、封装、继承,多态(重载,重写,接口多实现)
e).构造方法(默认构造器/参数化构造器)
f).限制访问修饰符: private,缺省(默认),protected,public
g).附加修饰符:final,static,abstract
h).接口
4.Java 基础包
a). java.lang :
包装类(Byte,Character,Short,Integer,Long,Float,Double,Boolean)
其它类:String,StringBuffer,Math,Class,Object
b). java.util
随机类:Random
日期类:Date,Calender
集合框架体系:Collection,List,Set,ArrayList,LinkedList,Vector,HashMap
c). java.io
文件类:File
字节流:FileInputStream,FileOutputStream
字符流:FileReader,FileWriter,BufferedReader,BufferedWriter
二进制流:(了解) DataInputStream,DataOutputStream
构造键盘流:BufferedReader input=
new BufferedReader(new InputStreamReader(System.in));
d). java.swt /javax.swing 了解java图形界面及事件响应机制
容器类组件:JFrame,JPanel,JScrollPane
组件: JLabel,JTextField,JPasswordField,JTextArea,JComboBox,
JRadioButton,JCheckBox,JMenuBar,JMenu,JMenuItem
5.JDBC 数据库连接
数据库的连接步骤:
1). 加载数据库驱动类: Class.forName(driver)
2). 通过驱动程序管理器获取连接: DriverManager.getConnection(url,user,password)
3). 基于连接对象建立处理器对象/预处理器对象
Statement stmt=conn.createStatement();
PreparedStatement stmt=conn.prepareStatement("insert into student values(?,?,?,?,?)");
4). 处理器执行SQL命令(Select/Insert/Update/Delete)
executeQuery(Select)
==>返回查询的结果集(ResultSet, ResultSet.getXXX(列编号,从1开始))
executeUpdate(Insert/Update/Delete) ==>返回执行命令影响的记录行(int)
5). 关闭各个对象
(高级要求,可以暂时不用掌握)
1. java内存管理(垃圾收集及对象引用的内存分析)
2. 栈和堆的区别(变量比较复制,引用传递和值传递)
3. 异常处理机制(异常的原量,异常程序流程)
4. 网络通信(TCP和UDP开发)开发
5. Java多线程开发
6. Applet,JavaWebStart.SWT,JavaFX
7. 数据库存取(事务存取,SavePoint)
8. 分布式计算(RMI,CORBA)
9. java本地调用(JNI原理,调用c程序,调用Delphi)
10. 反射机制(Annotation,动态代理)
11. Java动态编程(Compiler API,Instrumentation,Javassist,ClassEditor)
12. JMX资源管理容器
13. XML开发(DOM,DOM4J,SAX,JDOM)
14. LOG4J日志开发
15. 定时任务,日程工具Timer,Quartz
16. ZIP工具包
17. Excel文档存取工具POI
18. UML建模
19. 设计模式
2. 静态网页的制作
(基本要求)
1. 会写简单的HTML,并且能看懂一些正规网页(多级标题的运应。列表标记(序和无序标记)超链接标记,图像标记,表格标记,多媒体标记,表单标记
)
2. 用javascript做些简单的表单验证
3. 用css做排版
4. 会用Dreamweaver做简单的网页
(高级要求)以后从事界面开发的人,可以多下点工夫
1. 能够熟练用Dreamweaver制作网页
2. 能够熟练使用Photoshop进行图片处理
3. 能够熟练用Fireworks对图片进行切割
4. 能够熟练使用javascript做一些特效
5. 能够熟练使用DIV+CSS进行排版
3. javaweb开发
(基本要求)
1. WEB的两个发展阶段:静态,动态
2. 动态WEB的主要实现手段及区别
3. Tomcat的主要作用及配置
4. 开发一个简单的交互式程序
5. MyEclipse开发工具的使用
6. 在MyEclipse中使用Tomcat服务器
7. JSP中的三种注释
8. 三种SCriptlet及其区别
9. Page指令,包含指令
10. Jsp连接数据库
11. 两个include以及forward语句
12. 了解九个内置对象的定义
13. 掌握JAVAWEB中的四种属性范围
14. 掌握pageContext对象的使用
15. 掌握request,response,session,application四种内置对象及属性的设置
16. Javabean的主要作用,定义及使用,四种保存范围
17. 掌握Smartupload组件的作用,上传文件,为上传文件重命名
18. Dao数据库操作
19. MVC模式
20. Servlet
21. EL
22. JSTL
(高级要求,可以暂时不用掌握)
1. Filter
2. Listener
3. 报表的处理(JFreeChat)
4. 邮件收发(JavaMail)
5. 分页技术
6. Ajax
7. JSF
8. Freemarker
4.ssh框架学习
1.Struts(基本要求)
1. 了解struts2 框架的思想,MVC实现
2. 在Eclipse中开发struts2
3. Struts2 的基本流程
4. Struts2的基本配置(web.xml,struts.xml.struts.properties,struts.xml)
5. Struts2的Action(实现Action类,Action访问Servlet API,配置Action,动态方法调用,使用通配符,默认Action)
6. Struts2的处理结果(配置结果,Struts2支持的处理结果类型,redirect,chain)
7. Struts2的属性驱动与模型驱动
8. Struts2的类型转换器
Struts(高级要求)
1. Struts2的文件上传下载
2. Struts2的拦截器
3. Struts2的输入校验
4. Struts2的国际化
5. Struts2的标签库
6. Struts2的Ajax
7. 整合JSF
8. 整合JFreeChart
五.各阶段任务
1.Java基础
1. 安装配置java运行环境JDK,了解java程序的运行机理,用记事本写个HelloWorld程序,并在命令行操作。
2. 用java写个对数组降序排列程序(数组最好可以自己输入);在后面抄一个有图形的界面的程序(像画图的,有菜单的之类的),自己试着运行下(相信大家看到图形后会有惊喜的)。
3. 安装JCreator,用JCreator写个执行单步的计算器(不要求界面)。如输入3+5 输出8
4. 了解类,面向对象,继承,接口的相关概念,会编写一定的基础程序。
(1)定义一个接口,里面有方法ShowS(),ShowC()
(2)编写一个正方形类,实现了上面的接口,其中包含边长A,面积S和周长C,编写方法ShowS()和ShowC()分别输出正方形的面积和周长。(测试数据:A=5)
(3)编写一个长方体类继承自正方形类,长为A宽为B,重写方法ShowS()和ShowC()分别输出长方形的面积和周长。(测试数据:A=3,B=5)
(4)编写测试类来测试以上两个类。
5. 学会查API文档(这是必备的,因为类库非常多,要记是不可能的,记得常用的就行,另外就是要勤查文档),实现下面的接口。
要求:涉及到具体时间的标准格式格式一般为:yyyy-MM-dd HH:mm:ss
测试类可以自己写。
public interface TimeInterface
// 计算当月最后一天,返回字符串
public String getDefaultDay();
// 获得本周星期日的日期
public String getCurrentWeekday();
// 获取当天时间
public String getNowTime(String dateformat);
// 获得上周星期日的日期
public String getPreviousWeekSunday();
// 获得下个月最后一天的日期
public String getNextMonthEnd();
// 获得明年最后一天的日期
public String getNextYearEnd();
/**
* 是否闰年,参数要求由键盘输入
*
* @param year
* 年
* @return
*/
public boolean isLeapYear(int year);
6. 安装Eclipse,会用Eclipse编写程序,编写图形界面程序,能够对事件响应有很好的了解。编写一个记事本,能够对字体大小,字体形状,字体颜色进行控制,能够复制粘贴。(多查API文档)
7. 编写图形界面的计算器,能够实现简单的加减乘除运算,乘立方法算。
8. 安装sqlserver2000数据库,了解数据库基本知识,能够用查询分析器进行简单的增删改查。
9. 能够用JDBC连接数据库,将登录注册程序连接上数据库。
2. 静态网页的制作
1. 学会用html语言做静态网页。做一个介绍自己的网站(要求:代码手写,有以下标签:多级标题,列表,超链接,图像,表格,多媒体,表单)
2. 对介绍自己的网站的布局用css ,div控制完成
3. 用javascript对自己的网站进行表单验证。
4. javaweb开发
1. 安装Tomcat和MyEclipse,配置环境,了解jsp的运行原理。
2. 学习jsp的基本语法,会用四种内置对象,能够实现表单的提交,页面的跳转,做个登录注册程序,不要求连接数据库。
3. 用jsp对介绍自己的网站进行更改,要求能够,实现表单的提交,页面的参数传递和连接数据库对自己信息进行更改。
4. 了解Servlet的运行原理,配置Servlet,利用Servlet做一个登录注册程序。
5. 学习javabean,对登录注册用Servlet+javaBean+jsp实现
6. 用el表达式,对登录注册程序用EL表达式实现
7. 用JSTL表达式,对登录注岫程序用JSTL表达式实现
4.ssh框架学习本回答被提问者采纳
java简易计算机(用栈实现中缀转后缀,计算后缀表达式)
这学期java课的一个小作业,用java编一个小计算器。
个人认为要点在于:
1.计算机的布局,即按钮和输出框的布局需要知道怎么操作,按钮的大小和字体的大小颜色、不同布局中按钮的改变大小等等
2.用栈将中缀表达式转换为后缀表达式
3.用栈将后缀表达式计算出来
其他问题应该不大,因为只是涉及到简单的加减乘除运算。
我的这个计算器有以下功能:
1.支持加减乘除运算,支持括号功能,小数点功能。
2.支持删除一位的操作。
3.支持计算结果继续进行计算的功能。
4.点击=后原表达式消失,只出现结果,一般保留一位小数。
目前发现的缺陷:
1.负数开头无法实现
2.输入错误表达式后,必须要再输入一次正确表达式后,才能正常开始运算,找不着bug,挺奇怪的,希望老师看不到
等等
但是我都通过trycatch将异常捕获,统一在界面输出操作“非法输入,请按两次AC后重新操作”。
以下是界面展示:
下面直接上代码了
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
public class Computerhomework extends JFrame implements ActionListener
JTextField textField = new JTextField("");
String input = "";
JButton b[] = new JButton[20];
JPanel panel = new JPanel();
JPanel panel1 = new JPanel();
String name [] = "9","8","7","D","AC","6","5","4","-","(","3","2","1","*",")","0",".","=","/","+";
Stack<String> houzhui = new Stack<>();
public Computerhomework()
this.setTitle("Computer");
this.setSize(600, 700);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
public void board()
textField.setPreferredSize(new Dimension(600,80));
textField.setFont(new Font("宋体",Font.PLAIN,30));
textField.setEditable(false);
panel1.add(textField);
panel.setLayout(new GridLayout(4,4,5,5));
panel1.setLayout(new FlowLayout(3));
this.add(panel, BorderLayout.CENTER);
this.add(panel1, BorderLayout.NORTH);
for(int i=0;i<name.length;i++)//添加按钮
b[i] = new JButton(name[i]);
b[i].setBackground(new Color(162,192,142));
b[i].setForeground(Color.BLACK); //设置按键颜色
b[i].setFont(new Font("宋体",Font.PLAIN,50));//设置字体格式
panel.add(b[i]);//将按键添加到界面
b[i].addActionListener(this);
@Override
public void actionPerformed(ActionEvent e)
int flag_feifa = 0;
try
for(int i = 0; i<name.length; i++)
if(e.getSource() == b[i] && name[i] == "AC")
textField.setText("");
input = "";
else if(e.getSource() == b[i] && name[i] == "D")
String t = textField.getText();
String flag = t.substring(t.length()-1);
if(flag.equals("+") || flag.equals("-") || flag.equals("*") || flag.equals("/") || flag.equals("(") || flag.equals(")"))
textField.setText(t.substring(0, t.length()-1));
input = input.substring(0,input.length() - 3);
else
textField.setText(t.substring(0, t.length()-1));
input = input.substring(0,input.length() - 1);
else if(e.getSource() == b[i] && name[i] =="(")
textField.setText(textField.getText() + e.getActionCommand() );
input +=e.getActionCommand() + " ";
else if(e.getSource() == b[i] && name[i] == ")")
textField.setText(textField.getText() + e.getActionCommand() );
input += " "+e.getActionCommand();
else if(e.getSource() == b[i] && name[i] == "=")
System.out.println(input);
String r = result(to_houzhui(input));
input = r;
textField.setText(r);
else if(e.getSource() == b[i] && (name[i] == "+" || name[i] == "-" || name[i]=="*" || name[i] =="/"))
textField.setText(textField.getText() + e.getActionCommand() );
input += " " + e.getActionCommand() + " ";
else if(e.getSource() == b[i])
textField.setText(textField.getText() + e.getActionCommand() );
input += e.getActionCommand();
catch(Exception x)
textField.setText("非法输入,请按两次AC后重新操作");
input = "";
flag_feifa = 1;
public String to_houzhui(String in)
String hou = "";
String s[] = in.split(" ");
// System.out.println(s.length);
// for(String t:s)
// System.out.println(t);
//
for(int i=0; i<s.length; i++)
// .getClass().toString()获取数据类型 1*1*1*(11+1-44*21/11)
char flag = s[i].charAt(0); //取出字符串的第一个字符作为判断
if(flag >= '0' && flag <= '9' && i==0)
hou += s[i]; //数字加入后缀表达式
else if(flag >= '0' && flag <= '9')
hou += " "+s[i]; //数字加入后缀表达式
else if(houzhui.empty() == true)
houzhui.push(s[i]); //栈为空直接入栈
else if(flag == '(') houzhui.push(s[i]);
else if(houzhui.peek().equals("("))
houzhui.push(s[i]); //栈顶为左括号,入栈
else if(flag == ')')
while(houzhui.peek().equals("(") != true)
hou += " "+houzhui.peek();
houzhui.pop();
houzhui.pop(); //将(也pop掉
else if((flag == '+' || flag == '-') && (houzhui.peek().equals("*") || houzhui.peek().equals("/") || houzhui.peek().equals("+") || houzhui.peek().equals("-")))
//低优先级遇到高优先级,高优先级出栈,低优先级入栈,平级也是先出再入
String f = houzhui.peek();
while((f.equals("+") || f.equals("-")||f.equals("*")||f.equals("/"))&&!houzhui.empty())
hou += " " + f;
houzhui.pop();
if(!houzhui.empty())f = houzhui.peek();
houzhui.push(s[i]);
else if((flag == '*' || flag == '/' )&& (houzhui.peek().equals("+")|| houzhui.peek().equals("-")))
//*/为这里最高阶的运算符,遇到低级压入栈12*(12+12-14*13)
houzhui.push(s[i]);
else
//最高级遇到同级,先出后进
String f = houzhui.peek();
while((f.equals("*") || f.equals("/"))&&!houzhui.empty() )
hou += " " + f;
houzhui.pop();
if(!houzhui.empty())f = houzhui.peek();
houzhui.push(s[i]);
while(!houzhui.empty())
hou += " "+houzhui.peek();
houzhui.pop();
return hou;
public String result(String s)
double sum = 0;
String item[] = s.split(" ");
Stack<String> res = new Stack<>();
for(int i=0; i<item.length; i++)
if(item[i].charAt(0)>'0' && item[i].charAt(0)<'9')
res.push(item[i]);
else if(item[i].equals("+"))
double x = Double.parseDouble(res.peek());
res.pop();
double y = Double.parseDouble(res.peek());
res.pop();
String z = String.valueOf(y+x);
res.push(z);
else if(item[i].equals("-"))
double x = Double.parseDouble(res.peek());
res.pop();
double y = Double.parseDouble(res.peek());
res.pop();
String z = String.valueOf(y-x);
res.push(z);
else if(item[i].equals("*"))
double x = Double.parseDouble(res.peek());
res.pop();
double y = Double.parseDouble(res.peek());以上是关于java中,用布局器实现计算器界面 并实现加减乘除等功能,怎样编程的主要内容,如果未能解决你的问题,请参考以下文章