一个简易计算器程序,其界面如下图所示:
当按下“+”按钮时,两个数值文本框之间应显示“+”号,同时相加结果显示在第三个文本框内(如下图所示)。类似处理“-”、“*”和“/”按钮。
现在第二步能够出现加号 就是不能正确运算。如下代码,注释的地方为什么不能运行,该怎么做才能做到当按下加的按钮b1时,同时出现加号和得数?这里的tf和tf1是要计算的两个数
@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类进行对应的运算
//把结果写到这个输出框中
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。