如何采用java编写一个简单的计算器
来源:网络收集 点击: 时间:2024-03-111.打开IED:
打开自己java变成的软件,采用的是eclipse软件,如图所示;

2.建立java工程:
如图所示,建立自己的一个java工程,相信大家会建立了这个工程了吧;

1.类的基本结构:
由于这里用到了界面,所以要进行窗口界面的编程,按钮事件的处理,和计算处理界面;
package MyCaculator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCaculator extends JFrame {
private int add=1,sub=2,mul=3,div=4;
private int op=0;
boolean ifOp;
private String output=0;
private Button jba=new Button{new Button(7),new Button(8),
new Button(9),new Button(+),
new Button(4),new Button(5),new Button(6),new Button(-),
new Button(1),new Button(2),new Button(3),new Button(*),
new Button(0),new Button(.),new Button(=),new Button(/)};
private JPanel jpt=new JPanel();
private JPanel jpb=new JPanel();
private JTextField jtf=new JTextField();
private MyCaculator(){
}
private void operate(String x){
}
public String add(String x){
return output;
}
public String subtract(String x){
return output;
}
public String multiply(String x){
return output;
}
public String divide(String x){
return output;
}
public String Equals(String x){
return output;
}
public void opClean(){
}
class setOperate_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
}
}
class setLabel_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
}
}
public static void main(String args) {
}
}

2.建立构造方法:
所谓构造方法就是,对自己的主类进行初始化,代码如下:
private MyCaculator(){
jpt.setLayout(new BorderLayout());
jpt.add(jtf);
this.add(jpt,BorderLayout.NORTH);
jpb.setLayout(new GridLayout(4,4));
for(int i=0;ijba.length;i++){
jpb.add(jba);
if(i==3||i==7||i==11||i==15||i==14)
jba.addActionListener(new setOperate_Act());
else
jba.addActionListener(new setLabel_Act());
}
this.add(jpb,BorderLayout.CENTER);
this.setSize(250, 200);
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

3.建立数据计算方法
这里的数据计算方法有6个,一个是主方法其他几个是加减乘除的处理方法,代码如下:
private void operate(String x){
double x1=Double.valueOf(x);
double y=Double.valueOf(output);
switch(op){
case 0:output=x;break;
case 1:output=String.valueOf(y+x1);break;
case 2:output =String.valueOf(y-x1);break;
case 3:output =String.valueOf(y*x1);break;
case 4:
if(x1!=0) output=String.valueOf(y/x1);
elseoutput=不能为0;
break;
}
}
public String add(String x){
operate(x);
op=add;
return output;
}
public String subtract(String x){
operate(x);
op=sub;
return output;
}
public String multiply(String x){
operate(x);
op=mul;
return output;
}
public String divide(String x){
operate(x);
op=div;
return output;
}
public String Equals(String x){
operate(x);
op=0;
return output;
}
public void opClean(){
op=0;
output =0;
}

4.事件处理方法
这里的时间处理方法,没有建立一个整体的方法,二是在为了便于处理的方法,将按钮事件分成两个部分,并采用两个子类来实现,这两个类时内部类要写在主类内部的,代码如下:
class setOperate_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jba){
jtf.setText(add(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba){
jtf.setText(subtract(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba){
jtf.setText(multiply(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba){
jtf.setText(divide(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba){
jtf.setText(Equals(jtf.getText()));
ifOp=true;
}
}
}
class setLabel_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
Button tempb=(Button)e.getSource();
if(ifOp){
jtf.setText(tempb.getLabel());
ifOp=false;
}else {
jtf.setText(jtf.getText()+tempb.getLabel());
}
}
}

5.建立main方法:
要想实现我们的代码,我们需在main方法中,实例化我们的对象。
public static void main(String args) {
new MyCaculator();
}

1.编译运行:
我们单击“编译运行”按钮,可出现我们的计算器界面;

2.加法实验:
我们以实现加法为例,依次按按钮“9”“+”“7”“=”,可以看到我们的计算结果,看看是不是小小的计算器,实现了啊!!!

如有疑问可以留言
分享可以使我们懂得更多
JAVA编程语言计算器GUI界面版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_314384.html