界面-java 简易计算器,最后得数不能出现,求大神帮忙

问题描述

java 简易计算器,最后得数不能出现,求大神帮忙

(1)编写一个简易计算器程序,其界面如下图所示:

(2)当按下“+”按钮时,两个数值文本框之间应显示“+”号,同时相加结果显示在第三个文本框内(如下图所示)。类似处理“-”、“*”和“/”按钮。
现在第二步能够出现加号 就是不能正确运算。如下代码,注释的地方为什么不能运行,该怎么做才能做到当按下加的按钮b1时,同时出现加号和得数?这里的tf和tf1是要计算的两个数

```b1.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            Object obj=e.getSource();
            //int a=Integer.getInteger(tf.getText());
            //int b=Integer.getInteger(tf1.getText());
            //int result;
            //result=a+b;
            if(obj==b1){

                //tf2.setText(Integer.toString(result));
                l1.setText("+");
            }

        }
    });


`

解决方案

现在不能设计上述的第二步
建议采用分而治之的思想

1--首先要进行运算,那么你就设计运算的类Operator
它里面有 add minus等计算方法能够实现我们的运算.
这个可以融合工厂方法模式和单例模式设计,有兴趣可以了解下

2--为了把操作符显示到界面上面,你需要定义一个lable的控件在2个输入框之间,类似你定义的等号一样
后面可以改变lable的值
建议你把这个界面的表示都写在property文件中,然后程序从property文件中读取界面的表示文字。
可以了解下程序如何读取propertiy文件的内容

3--为了能够使按钮触发事件动起来,你要注册监听器
可以使用你这个界面类自身充当监听器
在你的类头处加上 implements ActionListener
然后让button注册监听器
plus.addActionListener(this);
minus.addActionListener(this);
...
...
然后实现接口方法
public void actionPerformed(ActionEvent e){
//加法按钮压下
if(e.getSource()==plus){
//先把那个lable的文字显示成这个+
lable.setText("+");

            } else if(e.getSource == minus){
                ....
            }...

                    //然后读取两个text框中的数字
                    //然后调用你那个Operator类进行对应的运算
                    //把结果写到这个输出框中
    }

解决方案二:

我没记错是课本上的一道例题
其实就是按钮与事件的绑定:按下 plus 在两个数值文本框之间显示+号,你只需要定义一个label于两个数值文本框中间,
当点击按钮“plus”触发响应事件,将该label的值改为 “+” 即可(其他同理)

解决方案三:

符号处放一个类似于 = 号处的控件,一般是 Label。
整个过程需要完成对 Label 和三个 Edit 控件的赋值和获取其中内容的过程。
只需要搞清楚一个,如 + 的实现过程,其它就简单了。

时间: 2024-11-08 19:26:08

界面-java 简易计算器,最后得数不能出现,求大神帮忙的相关文章

在Fragment中,怎么点击界面的按钮就闪退呢,求大神帮忙

问题描述 在Fragment中,怎么点击界面的按钮就闪退呢,求大神帮忙 解决方案 能把报错的打印拿出来吗? 解决方案二: 解决方案三: Servicei没有在AndroidMainfest.xml中声明: 解决方案四: 这是错误日志的报告,求大神帮忙. 解决方案五: 求大神帮忙啊,很急!!! 解决方案六: 指定错误,空指针错误. 解决方案七: public class MessageFragment extends Fragment { WifiManager wifi = null; Butt

页面-java web网上书店有个问题 求大神帮忙看下

问题描述 java web网上书店有个问题 求大神帮忙看下 前一个页面一个表单传值, 请输入收货地址: 后面在OrderServlet中处理 其中的数据库中的操作没有问题 但是连到OrderServlet中出现求大神帮忙!!!!! 解决方案 你点击继续看看什么效果啊,如果有问题就贴出来 解决方案二: 没有效果就是停在这个servlet了,而且数据库方法也没有实现 解决方案三: 数据库方法也没有实现

帮忙看一下,java连接数据的问题!!求大神帮忙

问题描述 帮忙看一下,java连接数据的问题!!求大神帮忙 解决方案 解决方案二: 解决方案三: 求大神帮忙啊!!!!!!!!!!!!!!!!!!! 解决方案四: 看你的jar包,你的sqlserver应该是2008版本,换个jar包,sqljdbc4 解决方案五: 应该是版本不对,或者driverStr写错了 解决方案六: buildpath里看下jar包添加了没有.如果添加了可以试一下把项目重新编译一下,再不行可能是版本不对,换个驱动包 解决方案七: 驱动类找不到,检查下你的驱动jar包有没

java excel导出样式 急急。。求大神帮忙

问题描述 java excel导出样式 急急..求大神帮忙 // 定义excel标题样式 public static WritableCellFormat ExcelTitleStyle() { WritableFont wfTitle = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.fo

在eclipse下无论运行什么java程序都出现以下错误,求大神帮忙解决

问题描述 解决方案 解决方案二:这个错误应该不是Eclipse的问题,应该是你工程的问题,检查检查本地工程解决方案三:是不是mysql没配置好啊

java-简单计算器Java代码非法表达式问题问题,求大神指点

问题描述 简单计算器Java代码非法表达式问题问题,求大神指点 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Jisuanqi extends JFrame implements ActionListener{ //计算器控件键 JFrame Jisuan = new JFrame("计算器"); private final String KEYS[] = {"7&

java求相关源代码,求大神帮忙,对于你们可能很简单,拜托啦

问题描述 java求相关源代码,求大神帮忙,对于你们可能很简单,拜托啦 要求是需要一个客户端软件和服务器软件,客户端通过启动一个图形界面调用一个指定文件夹里的指定名称的语音数据联网发送给服务器,服务器处理后再把处理结果发给客户端.拜托各位啦! 解决方案 就是post字节数组 byte[],网上都是现成的代码,自己找一个吧 解决方案二: 打开该语音文件,将内容读取为字节数组,使用HttpClient将该数组发送给服务端(HTTP协议),然后服务器端使用servlet接受该请求和内容进行分析,再使用

数据库-求大神帮忙写一个基于java的学生学籍管理系统

问题描述 求大神帮忙写一个基于java的学生学籍管理系统 具体功能有:1)设计入学.管理及查询界面 2)设计学生各学期.学年成绩输入及查询界 面,并打印各项报表 3)根据各年度总成绩,查询.输出学生学籍管理方案(优秀,合格,试读,退学) 4)毕业管理 5)系统维护,如数据安全管理(含系统备份 与恢复),操作员管理,权限设置 解决方案 这个说起来简单,但是要做的话还是要一点时间的,这应该是一个毕业设计的课题呀 解决方案二: 你确定你不花钱或者撒个娇有人会花时间帮你做这个 解决方案三: 需要定制么?

javascript-JS简单计算器问题 不知道哪错了 求大神指点

问题描述 JS简单计算器问题 不知道哪错了 求大神指点 简易计算<br> function jiSuan(){<br> var num1 = document.getElementById("num1").value*1;<br> var num2 = document.getElementById("num2").value*1;<br> var oper = document.getElementById(&quo