java编写简易计算器,Java编译器
大家好,今天给各位分享java编写简易计算器的一些知识,其中也会对Java编译器进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
求JAVA编写的 简易计算器程序,附上注释
1、首先准备好软件即eclipse和java,下载安装完成后打开eclipse。
2、点击左上角的file新建一个project。
3、给project取一个名字,其他的选项都是默认然后点击finish。
4、接下来是新建一个class。
5、在给class取名字的时候注意用英文名的首字母要大写。完成后点击finish。
6、这就是开始写代码的工作台,将代码写在绿字下。
7、这就是第一个hello world程序。
用Java设计一个简单的计算器。
说实在的,你写的这个计算器不怎么样。特别是布局。
我给你一个很简单的吧。你自己学习一下。。
import java.awt.*;
import java.awt.event.*;
/**
*
*@author zzj
*
*/
public class Jisuanqi extends WindowAdapter{
Panel p1= new Panel();
Panel p2= new Panel();
Panel p3= new Panel();
TextField txt;
private Button[] b= new Button[17];
private String ss[]={"7","8","9","+","4","5","6","-","1","2",
"3","*","清空","0","=","/","关闭"};
static double a;
static String s, str;//定义变量创建对像
public static void main(String args[]){
(new Jisuanqi()).frame();
}
public void frame(){
Frame fm= new Frame("简单计算器");
for(int i= 0; i<= 16; i++){
b[i]= new Button(ss[i]);
}
for(int i= 0; i<= 15; i++){
p2.add(b[i]);
}//创建按钮并添加到P2
b[16].setBackground(Color.yellow);
txt= new TextField(15);
txt.setEditable(false);
for(int i= 0; i<= 16; i++){
b[i].addActionListener(new buttonlistener());//添加监听器
}
b[16].addActionListener(new close());
fm.addWindowListener(this);
fm.setBackground(Color.red);
p1.setLayout(new BorderLayout());
p1.add(txt,"North");
p2.setLayout(new GridLayout(4, 4));
p3.setLayout(new BorderLayout());
p3.add(b[16]);
fm.add(p1,"North");
fm.add(p2,"Center");
fm.add(p3,"South");
fm.pack();
fm.setVisible(true);//都是些窗中设置添加相关组件和监听器
}
public void windowClosing(WindowEvent e){
System.exit(0);//退出系统
}
class buttonlistener implements ActionListener{//编写监听器事件通过按键得出给果
public void actionPerformed(ActionEvent e){
Button btn=(Button) e.getSource();
if(btn.getLabel()=="="){
jisuan();
str= String.valueOf(a);
txt.setText(str);
s="";
} else if(btn.getLabel()=="+"){
jisuan();
txt.setText("");
s="+";
} else if(btn.getLabel()=="-"){
jisuan();
txt.setText("");
s="-";
} else if(btn.getLabel()=="/"){
jisuan();
txt.setText("");
s="/";
} else if(btn.getLabel()=="*"){
jisuan();
txt.setText("");
s="*";
} else{
txt.setText(txt.getText()+ btn.getLabel());
if(btn.getLabel()=="清空")
txt.setText("");
}
}
public void jisuan(){//编写具体计算方法
if(s=="+")
a+= Double.parseDouble(txt.getText());
else if(s=="-")
a-= Double.parseDouble(txt.getText());
else if(s=="*")
a*= Double.parseDouble(txt.getText());
else if(s=="/")
a/= Double.parseDouble(txt.getText());
else
a= Double.parseDouble(txt.getText());
}
}
}
class close implements ActionListener{//退出
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
怎么用JAVA编程编写一个计算器
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class Jisuanqi extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID= 1L;
Result result= new Result();//定义text的面板
Number_Key number_key= new Number_Key();//定义按钮面板
//当点击按钮+、-、*、/时,com= true
boolean com= false;
//当i=0时说明是我们第一次输入,字符串text不会累加
int i= 0;
//存放text的内容
String text="";
//存放点击按钮+、-、*、/之前的数值
double defbutton= 0;
//+、-、*、/的代号分别为1,2,3,4
int symbol= 0;
//构造函数
Jisuanqi(){
super("WangJiao");//设定标题
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设定关闭窗体时退出程序
JPanel pane= new JPanel();//定义主面板
pane.setLayout(new BorderLayout());
setBounds(380, 220, 30, 80);//前两个参数是在屏幕上显示的坐标,后两个是大小
//替换图标
ImageIcon icon= new ImageIcon("F:1.GIF");
// Jisuanqi.class.getResource("APPLE.GIF")
//);
setIconImage(icon.getImage());
pane.add(result, BorderLayout.NORTH);
pane.add(number_key, BorderLayout.CENTER);
pane.add(number_key.equal, BorderLayout.SOUTH);
number_key.one.addActionListener(this);//对1按钮添加监听事件
number_key.two.addActionListener(this);//对2按钮添加监听事件
number_key.three.addActionListener(this);//对3按钮添加监听事件
number_key.four.addActionListener(this);//对4按钮添加监听事件
number_key.five.addActionListener(this);//对5按钮添加监听事件
number_key.six.addActionListener(this);//对6按钮添加监听事件
number_key.seven.addActionListener(this);//对7按钮添加监听事件
number_key.eight.addActionListener(this);//对8按钮添加监听事件
number_key.nine.addActionListener(this);//对9按钮添加监听事件
number_key.zero.addActionListener(this);//对0按钮添加监听事件
number_key.ce.addActionListener(this);//对置零按钮添加监听事件
number_key.plus.addActionListener(this);//对+按钮添加监听事件
number_key.equal.addActionListener(this);//对=按钮添加监听事件
number_key.sub.addActionListener(this);//对-按钮添加监听事件
number_key.mul.addActionListener(this);//对*按钮添加监听事件
number_key.div.addActionListener(this);//对/按钮添加监听事件
number_key.point.addActionListener(this);//对.按钮添加监听事件
setContentPane(pane);
pack();//初始化窗体大小为正好盛放所有按钮
}
//各个按钮触发的事件
public void actionPerformed(ActionEvent e){
/*
*如果是点击数字按钮那么先要判断是否在此之前点击了+、-、*、/、=,如果是那么com=true如果没有com=
* false;或者是否点击数字键,如果是i= 1,如果没有 i= 0;
*/
if(e.getSource()== number_key.one){
if(com|| i== 0){
result.text.setText("1");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"1");
}
} else if(e.getSource()== number_key.two){
if(com|| i== 0){
result.text.setText("2");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"2");
}
} else if(e.getSource()== number_key.three){
if(com|| i== 0){
result.text.setText("3");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"3");
}
} else if(e.getSource()== number_key.four){
if(com|| i== 0){
result.text.setText("4");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"4");
}
} else if(e.getSource()== number_key.five){
if(com|| i== 0){
result.text.setText("5");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"5");
}
} else if(e.getSource()== number_key.six){
if(com|| i== 0){
result.text.setText("6");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"6");
}
} else if(e.getSource()== number_key.seven){
if(com|| i== 0){
result.text.setText("7");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"7");
}
} else if(e.getSource()== number_key.eight){
if(com|| i== 0){
result.text.setText("8");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"8");
}
} else if(e.getSource()== number_key.nine){
if(com|| i== 0){
result.text.setText("9");
com= false;
i= 1;
} else{
text= result.text.getText();
result.text.setText(text+"9");
}
}
/*
*对于0这个按钮有一定的说法,在我的程序里不会出现如00000这样的情况,我加了判断条件就是
*如果text中的数值=0就要判断在这个数值中是否有.存在?如果有那么就在原来数值基础之上添加0;否则保持原来的数值不变
*/
else if(e.getSource()== number_key.zero){// result.text.getText()是得到text里内容的意思
if(com|| i== 0){
result.text.setText("0");
com= false;
i= 1;
} else{
text= result.text.getText();
if(Float.parseFloat(text)> 0|| Float.parseFloat(text)< 0){// Float.parseFloat(text)就是类型转换了,下面都是一样
result.text.setText(text+"0");
} else{
if(text.trim().indexOf(".")==-1){
result.text.setText(text);
} else{
result.text.setText(text+"0");
}
}
}
} else if(e.getSource()== number_key.ce){
result.text.setText("0");
i= 0;
com= true;
// text="";
defbutton= 0;
}
/*
*本程序不会让一个数值中出现2个以上的小数点.具体做法是:判断是否已经存在.存在就不添加,不存在就添加.
*/
else if(e.getSource()== number_key.point){
if(com|| i== 0){
result.text.setText("0.");
com= false;
i= 1;
} else{
text= result.text.getText();
if(text.trim().indexOf(".")==-1){
result.text.setText(text+".");
} else{
result.text.setText(text);
}
}
}//获得点击+之前的数值
else if(e.getSource()== number_key.plus){
com= true;
i= 0;
defbutton= Double.parseDouble(result.text.getText());
symbol= 1;
}//获得点击-之前的数值
else if(e.getSource()== number_key.sub){
com= true;
i= 0;
defbutton= Double.parseDouble(result.text.getText());
symbol= 2;
}//获得点击*之前的数值
else if(e.getSource()== number_key.mul){
com= true;
i= 0;
defbutton= Double.parseDouble(result.text.getText());
System.out.println(defbutton);
symbol= 3;
}//获得点击/之前的数值
else if(e.getSource()== number_key.div){
com= true;
i= 0;
defbutton= Double.parseDouble(result.text.getText());
symbol= 4;
} else if(e.getSource()== number_key.equal){
switch(symbol){
case 1:{//计算加法
double ad= defbutton
+ Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i= 0;
text="";
break;
}
case 2:{//计算减法
double ad= defbutton
- Double.parseDouble(result.text.getText());
result.text.setText(String.valueOf(ad));
i= 0;
text="";
break;
}
case 3:{//计算乘法
double ad= defbutton
* Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i= 0;
text="";
break;
}
case 4:{//计算除法
double ad= defbutton
/ Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i= 0;
text="";
break;
}
}
System.out.println(com);
}
System.out.println(result.text.getText());
}
@SuppressWarnings("deprecation")
public static void main(String[] args){
Jisuanqi loveyou= new Jisuanqi();
loveyou.show();
}
}
//计算器数字按钮定义面板
class Number_Key extends JPanel{
/**
*
*/
private static final long serialVersionUID= 1L;
JButton zero= new JButton("0");//数字键0
JButton one= new JButton("1");//数字键1
JButton two= new JButton("2");//数字键2
JButton three= new JButton("3");//数字键3
JButton four= new JButton("4");//数字键4
JButton five= new JButton("5");//数字键5
JButton six= new JButton("6");//数字键6
JButton seven= new JButton("7");//数字键7
JButton eight= new JButton("8");//数字键8
JButton nine= new JButton("9");//数字键9
JButton plus= new JButton("+");
JButton sub= new JButton("-");
JButton mul= new JButton("*");
JButton div= new JButton("/");
JButton equal= new JButton("=");
JButton ce= new JButton("清零");//置零键
JButton point= new JButton(".");
Number_Key(){
setLayout(new GridLayout(4, 4, 1, 1));//定义布局管理器为网格布局
setBackground(Color.blue);//设置背景颜色
//添加按钮
add(one);
add(two);
add(three);
add(four);
add(five);
add(six);
add(seven);
add(eight);
add(nine);
add(zero);
add(plus);
add(sub);
add(mul);
add(div);
add(point);
add(equal);
add(ce);
}
}
//计算器显示结果的窗体
class Result extends JPanel{
/**
*
*/
private static final long serialVersionUID= 1L;
// text先是输入和结果
JTextField text= new JTextField("0");
@SuppressWarnings("deprecation")
Result(){//讲输入的数字或得到的结果在text的右边显示
text.setHorizontalAlignment(SwingConstants.RIGHT);
text.enable(false);//文本框不能编辑
setLayout(new BorderLayout());//设定布局管理器边框布局
add(text, BorderLayout.CENTER);// text放置在窗体的中间
}
}
直接复制保存成Jisuanqi.java可以直接运行了
关于java编写简易计算器的内容到此结束,希望对大家有所帮助。