自己写的一个计算器,极其简单,并且很多功能不完备
2014-11-12 23:59
495 查看
其实贴上来的代码都会有点搞笑,学了Java不过个把月,写的完全不知所云,很多基本知识还是不是很透彻,就当这段路上的勉励站吧,再接再厉!
要是不幸污了您的眼睛,别见怪啊
还望求教,指点一下,我也能进步进步,很多东西都是书上学不到的。
/**
* 做一个计算器,使其具有简单的功能
* @author:JeremyJone
* @2014.9.24
*
* 做出界面,具有显示面板,同时具有0-9,和加减乘除,还有删除和清空按钮
*
* 按下每个按钮时显示面板都具有相应功能
*
*/
package Demo1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculator extends JFrame implements ActionListener{
String s="";
//定义两个中间缓存变量
double p1;
double p2;
//在定义一个加减乘除的符号变量,0 代表无表示,1代表加,2代表减,3代表乘,4代表除
int x=0;
JTextField text=null;
JButton jbc=null;
JButton jb1=null;
JButton jb2=null;
JButton jb3=null;
JButton jb4=null;
JButton jb5=null;
JButton jb6=null;
JButton jb7=null;
JButton jb8=null;
JButton jb9=null;
JButton jb0=null;
JButton jbdot=null;
JButton jbe=null;
JButton jbadd=null;
JButton jbminus=null;
JButton jbtime=null;
JButton jbdivide=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
calculator demo1_1=new calculator();
}
//构造
public calculator()
{
JPanel mainpanel=new JPanel();
JPanel northpanel=new JPanel();
text=new JTextField();
text.setPreferredSize(new Dimension(135,50));
text.setEnabled(false);
text.setFont(new Font("黑体",30,30));
text.setHorizontalAlignment(JTextField.RIGHT); //右对齐
jbc=new JButton("C");
jbc.setPreferredSize(new Dimension(50,50));
jbc.addActionListener(this);
jbc.setActionCommand("C");
northpanel.add(text);
northpanel.add(jbc);
JPanel buttonpanel=new JPanel(new GridLayout(4,3,10,10));
jb1=new JButton("1");
jb1.addActionListener(this);
jb1.setActionCommand("1");
jb2=new JButton("2");
jb2.addActionListener(this);
jb2.setActionCommand("2");
jb3=new JButton("3");
jb3.addActionListener(this);
jb3.setActionCommand("3");
jb4=new JButton("4");
jb4.addActionListener(this);
jb4.setActionCommand("4");
jb5=new JButton("5");
jb5.addActionListener(this);
jb5.setActionCommand("5");
jb6=new JButton("6");
jb6.addActionListener(this);
jb6.setActionCommand("6");
jb7=new JButton("7");
jb7.addActionListener(this);
jb7.setActionCommand("7");
jb8=new JButton("8");
jb8.addActionListener(this);
jb8.setActionCommand("8");
jb9=new JButton("9");
jb9.addActionListener(this);
jb9.setActionCommand("9");
4000
jb0=new JButton("0");
jb0.addActionListener(this);
jb0.setActionCommand("0");
jbdot=new JButton(".");
jbdot.addActionListener(this);
jbdot.setActionCommand("dot");
jbe=new JButton("=");
jbe.addActionListener(this);
jbe.setActionCommand("e");
JPanel mathpanel=new JPanel(new GridLayout(4,1,10,10));
jbadd=new JButton("+");
jbadd.addActionListener(this);
jbadd.setActionCommand("add");
jbminus=new JButton("-");
jbminus.addActionListener(this);
jbminus.setActionCommand("minus");
jbtime=new JButton("*");
jbtime.addActionListener(this);
jbtime.setActionCommand("time");
jbdivide=new JButton("/");
jbdivide.addActionListener(this);
jbdivide.setActionCommand("divide");
buttonpanel.add(jb7);
buttonpanel.add(jb8);
buttonpanel.add(jb9);
buttonpanel.add(jb4);
buttonpanel.add(jb5);
buttonpanel.add(jb6);
buttonpanel.add(jb1);
buttonpanel.add(jb2);
buttonpanel.add(jb3);
buttonpanel.add(jbdot);
buttonpanel.add(jb0);
buttonpanel.add(jbe);
mathpanel.add(jbadd);
mathpanel.add(jbminus);
mathpanel.add(jbtime);
mathpanel.add(jbdivide);
mainpanel.add(northpanel);
mainpanel.add(buttonpanel,BorderLayout.WEST);
mainpanel.add(mathpanel,BorderLayout.EAST);
text.setText(s);
this.add(mainpanel);
this.setLocation(700, 300);
this.setSize(220, 250);
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {
if(e.getActionCommand().equals("C"))
{
s="";
text.setText(s);
}
else if(e.getActionCommand().equals("1"))
{
s=s+"1";
text.setText(s);
}
else if(e.getActionCommand().equals("2"))
{
s=s+"2";
text.setText(s);
}
else if(e.getActionCommand().equals("3"))
{
s=s+"3";
text.setText(s);
}
else if(e.getActionCommand().equals("4"))
{
s=s+"4";
text.setText(s);
}
else if(e.getActionCommand().equals("5"))
{
s=s+"5";
text.setText(s);
}
else if(e.getActionCommand().equals("6"))
{
s=s+"6";
text.setText(s);
}
else if(e.getActionCommand().equals("7"))
{
s=s+"7";
text.setText(s);
}
else if(e.getActionCommand().equals("8"))
{
s=s+"8";
text.setText(s);
}
else if(e.getActionCommand().equals("9"))
{
s=s+"9";
text.setText(s);
}
else if(e.getActionCommand().equals("0"))
{
s=s+"0";
text.setText(s);
}
else if(e.getActionCommand().equals("dot"))
{
if (text.getText().contains("."))
{
s=s;
text.setText(s);
}else
{
s=s+".";
text.setText(s);
}
}
else if(e.getActionCommand().equals("e"))
{
switch(x)
{
case 0:
text.setText(s);
break;
case 1:
p2=Double.valueOf(text.getText());
s=String.valueOf(p1+p2);
text.setText(s);
break;
case 2:
p2=Double.valueOf(text.getText());
s=String.valueOf(p1-p2);
text.setText(s);
break;
case 3:
p2=Double.valueOf(text.getText());
s=String.valueOf(p1*p2);
text.setText(s);
break;
case 4:
p2=Double.valueOf(text.getText());
if(p2!=0)
{
s=String.valueOf(p1/p2);
text.setText(s);
}else
{
s="ERROR";
text.setText(s);
}
break;
}
}
else if(e.getActionCommand().equals("add"))
{
p1=Double.valueOf(text.getText());
s="";
x=1;
}
else if(e.getActionCommand().equals("minus"))
{
p1=Double.valueOf(text.getText());
s="";
x=2;
}
else if(e.getActionCommand().equals("time"))
{
p1=Double.valueOf(text.getText());
s="";
x=3;
}
else if(e.getActionCommand().equals("divide"))
{
p1=Double.valueOf(text.getText());
s="";
x=4;
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
要是不幸污了您的眼睛,别见怪啊
还望求教,指点一下,我也能进步进步,很多东西都是书上学不到的。
/**
* 做一个计算器,使其具有简单的功能
* @author:JeremyJone
* @2014.9.24
*
* 做出界面,具有显示面板,同时具有0-9,和加减乘除,还有删除和清空按钮
*
* 按下每个按钮时显示面板都具有相应功能
*
*/
package Demo1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculator extends JFrame implements ActionListener{
String s="";
//定义两个中间缓存变量
double p1;
double p2;
//在定义一个加减乘除的符号变量,0 代表无表示,1代表加,2代表减,3代表乘,4代表除
int x=0;
JTextField text=null;
JButton jbc=null;
JButton jb1=null;
JButton jb2=null;
JButton jb3=null;
JButton jb4=null;
JButton jb5=null;
JButton jb6=null;
JButton jb7=null;
JButton jb8=null;
JButton jb9=null;
JButton jb0=null;
JButton jbdot=null;
JButton jbe=null;
JButton jbadd=null;
JButton jbminus=null;
JButton jbtime=null;
JButton jbdivide=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
calculator demo1_1=new calculator();
}
//构造
public calculator()
{
JPanel mainpanel=new JPanel();
JPanel northpanel=new JPanel();
text=new JTextField();
text.setPreferredSize(new Dimension(135,50));
text.setEnabled(false);
text.setFont(new Font("黑体",30,30));
text.setHorizontalAlignment(JTextField.RIGHT); //右对齐
jbc=new JButton("C");
jbc.setPreferredSize(new Dimension(50,50));
jbc.addActionListener(this);
jbc.setActionCommand("C");
northpanel.add(text);
northpanel.add(jbc);
JPanel buttonpanel=new JPanel(new GridLayout(4,3,10,10));
jb1=new JButton("1");
jb1.addActionListener(this);
jb1.setActionCommand("1");
jb2=new JButton("2");
jb2.addActionListener(this);
jb2.setActionCommand("2");
jb3=new JButton("3");
jb3.addActionListener(this);
jb3.setActionCommand("3");
jb4=new JButton("4");
jb4.addActionListener(this);
jb4.setActionCommand("4");
jb5=new JButton("5");
jb5.addActionListener(this);
jb5.setActionCommand("5");
jb6=new JButton("6");
jb6.addActionListener(this);
jb6.setActionCommand("6");
jb7=new JButton("7");
jb7.addActionListener(this);
jb7.setActionCommand("7");
jb8=new JButton("8");
jb8.addActionListener(this);
jb8.setActionCommand("8");
jb9=new JButton("9");
jb9.addActionListener(this);
jb9.setActionCommand("9");
4000
jb0=new JButton("0");
jb0.addActionListener(this);
jb0.setActionCommand("0");
jbdot=new JButton(".");
jbdot.addActionListener(this);
jbdot.setActionCommand("dot");
jbe=new JButton("=");
jbe.addActionListener(this);
jbe.setActionCommand("e");
JPanel mathpanel=new JPanel(new GridLayout(4,1,10,10));
jbadd=new JButton("+");
jbadd.addActionListener(this);
jbadd.setActionCommand("add");
jbminus=new JButton("-");
jbminus.addActionListener(this);
jbminus.setActionCommand("minus");
jbtime=new JButton("*");
jbtime.addActionListener(this);
jbtime.setActionCommand("time");
jbdivide=new JButton("/");
jbdivide.addActionListener(this);
jbdivide.setActionCommand("divide");
buttonpanel.add(jb7);
buttonpanel.add(jb8);
buttonpanel.add(jb9);
buttonpanel.add(jb4);
buttonpanel.add(jb5);
buttonpanel.add(jb6);
buttonpanel.add(jb1);
buttonpanel.add(jb2);
buttonpanel.add(jb3);
buttonpanel.add(jbdot);
buttonpanel.add(jb0);
buttonpanel.add(jbe);
mathpanel.add(jbadd);
mathpanel.add(jbminus);
mathpanel.add(jbtime);
mathpanel.add(jbdivide);
mainpanel.add(northpanel);
mainpanel.add(buttonpanel,BorderLayout.WEST);
mainpanel.add(mathpanel,BorderLayout.EAST);
text.setText(s);
this.add(mainpanel);
this.setLocation(700, 300);
this.setSize(220, 250);
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {
if(e.getActionCommand().equals("C"))
{
s="";
text.setText(s);
}
else if(e.getActionCommand().equals("1"))
{
s=s+"1";
text.setText(s);
}
else if(e.getActionCommand().equals("2"))
{
s=s+"2";
text.setText(s);
}
else if(e.getActionCommand().equals("3"))
{
s=s+"3";
text.setText(s);
}
else if(e.getActionCommand().equals("4"))
{
s=s+"4";
text.setText(s);
}
else if(e.getActionCommand().equals("5"))
{
s=s+"5";
text.setText(s);
}
else if(e.getActionCommand().equals("6"))
{
s=s+"6";
text.setText(s);
}
else if(e.getActionCommand().equals("7"))
{
s=s+"7";
text.setText(s);
}
else if(e.getActionCommand().equals("8"))
{
s=s+"8";
text.setText(s);
}
else if(e.getActionCommand().equals("9"))
{
s=s+"9";
text.setText(s);
}
else if(e.getActionCommand().equals("0"))
{
s=s+"0";
text.setText(s);
}
else if(e.getActionCommand().equals("dot"))
{
if (text.getText().contains("."))
{
s=s;
text.setText(s);
}else
{
s=s+".";
text.setText(s);
}
}
else if(e.getActionCommand().equals("e"))
{
switch(x)
{
case 0:
text.setText(s);
break;
case 1:
p2=Double.valueOf(text.getText());
s=String.valueOf(p1+p2);
text.setText(s);
break;
case 2:
p2=Double.valueOf(text.getText());
s=String.valueOf(p1-p2);
text.setText(s);
break;
case 3:
p2=Double.valueOf(text.getText());
s=String.valueOf(p1*p2);
text.setText(s);
break;
case 4:
p2=Double.valueOf(text.getText());
if(p2!=0)
{
s=String.valueOf(p1/p2);
text.setText(s);
}else
{
s="ERROR";
text.setText(s);
}
break;
}
}
else if(e.getActionCommand().equals("add"))
{
p1=Double.valueOf(text.getText());
s="";
x=1;
}
else if(e.getActionCommand().equals("minus"))
{
p1=Double.valueOf(text.getText());
s="";
x=2;
}
else if(e.getActionCommand().equals("time"))
{
p1=Double.valueOf(text.getText());
s="";
x=3;
}
else if(e.getActionCommand().equals("divide"))
{
p1=Double.valueOf(text.getText());
s="";
x=4;
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
相关文章推荐
- 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传
- 一个简单的jQuery计算器实现了连续计算功能
- 用android studio写一个简单并且bug奇多的计算器
- 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传
- 自己写的一个简单的Resources文件,主要功能就是切换文化
- 写一个自己的Spring框架——简单实现IoC容器功能
- 一个简单的jQuery计算器实现了连续计算功能
- 一个简单的关于计算器功能的实现(剽窃)
- 自己写了一个链表功能还不完善但是简单的增删改查功能都已经实现了
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- shell实现一个简单的计算器功能小脚本
- 自己编写的一个简单的计算器
- 极其简单的一个JSP小功能
- 一个能够实现简单功能的计算器
- 自己封装的一个简单的倒计时功能实例
- 最近想写一个邮箱自动验证功能,在网上看了很多,写到自己上面出了很多问题,记录下来给后面的人一个参考
- 最近写了一个红包雨的小功能,但感觉自己的js还有很多地方可以提高,望大神们可以帮忙指点一二
- 自己封装的一个简单的倒计时功能
- 自己写的一个VB密码本,功能简单实用,献丑了。
- 最近想写一个邮箱自动验证功能,在网上看了很多,写到自己上面出了很多问题,记录下来给后面的人一个参考