读书人

Netjava project winXP计算器效能的实

发布时间: 2013-08-01 15:23:18 作者: rapoo

Netjava project winXP计算器功能的实现

?终于完成了我第二个用事件做的项目,就是简单计算器的实现。这个计算器是仿造windows xp下的计算器制作的。


Netjava project winXP计算器效能的实现
?
我们的计算器要实现有以下功能:
退格、清除当前、清除、数字按钮、三角函数、正负号、点、四则运算、开根号、百分号、倒数。
我们不妨分为三类:
基础按钮:数字按钮、退格、清除
单位运算:三角函数、正负号、点、百分号、倒数
双位运算:四则运算

?

首先我们要看一下窗体的布局,默认的是边框布局,那我们不妨就用边框布局啦~
北部是一个文本输入框,中间是有很多很多按钮的面板。
我们先做北部,记得把文本框设置为不可编辑。

public JPanel panelnorth() {JPanel panel = new JPanel();// 设文本框大小tf.setPreferredSize(new Dimension(50, 50));tf.setFont(new Font("宋体",Font.BOLD,19));// 设置不可编辑tf.setEditable(false);// 设置右对齐tf.setHorizontalAlignment(SwingConstants.RIGHT);tf.setOpaque(false);// 将文本框添加至窗体panel.add(tf);// 返回北面窗体对象return panel;}

?首先我们添加数字按钮,以0为例:

//设置按钮0JButton jbu = new JButton("0");//给按钮添加监听器jbu.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//如果当前窗口就为0,就设置当前窗口为0if (tf.getText().equals("0")) {tf.setText("0");} else {//否则就会在文本后添加0tf.setText(tf.getText() + "0");}}});

?

然后是后退按钮:

?

//实例化一个后退按钮JButton jbu = new JButton("Backspace");//给后退按钮加监听器jbu.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//获取文本框的字体String temp = tf.getText();//减少最后的一个字符temp = temp.substring(0, temp.length() - 1);//设置文本框的内容tf.setText(temp);}});

?

清屏按钮:

?

//设置按钮clearJButton jbu = new JButton("C");//给按钮添加监听器jbu.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//初始化所有文本a = 0;b = 0;sign = ' ';bol = false;//设置文本框为0tf.setText("0");}});

?

接下来是简答的单位运算,我们以开根号为例:

//添加按钮开根号JButton jbu9 = new JButton("sqrt");//给按钮添加监听器jbu9.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){//获取文本框内容转化为数字double temp = Double.parseDouble(tf.getText());//给数字开根号temp = Math.sqrt(temp);//将数字转化为字符串添加到文本框中tf.setText(Double.toString(temp));//设置为可计算bol = true;}});

?

双位运算,我们首先声明变量:

private char sign = ' ';private double a = 0, b = 0;private boolean bol = false;

?

sign代表运算符号,a代表第一个数字,当按运算符时记录此数字,并且记录此符号,然后设置为可编辑。
而后,我们再输入一个数字,当按等于号时,就会记录第二个数字赋给b,然后会输出最终结果。
我们以加号为例:

?

//添加按钮加号JButton jbu = new JButton("+");//添加按钮监听器jbu.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//设置标识符为加号sign = '+';//从文本框获取字符串转化为数字给第一个变量a = Double.parseDouble(tf.getText());//设置可以编辑bol = true;}});

?

还有就是最重要的等于号:?

//实例化按钮对象等于JButton jbu = new JButton("=");//给按钮添加监听器jbu.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//如果不可编辑,把当前窗体的值赋给bif(!bol)b = Double.parseDouble(tf.getText());//初始化计算结果double c = 0;//switch选择运算符号switch (sign) {case '+':c = a + b;break;case '-':c = a - b;break;case '*':c = a * b;break;case '/':c = a / b;break;default:break;}//如果没有小数点if(c==(int)c){//设置c为整型添加到窗体tf.setText(Integer.toString((int)c));}else{//设置c为浮点型添加到窗体tf.setText(Double.toString(c));}//设置为可计算bol = true;//把当前值赋给aa=c;}});

?

依上述方法就可以把计算器做玩,然后去做自己的运算啦~

读书人网 >编程

热点推荐