您的位置:首页 > 编程语言 > Java开发

java简易计算器

2013-10-29 00:05 295 查看
这是练习的简易计算器,无优先级运算。

第一个是我自己写的,图省事用界面是用可视化拉的,附加功能,代码比较乱。后面有第二个老师给的范例,代码美观,方法较好。

package com.cn;

import java.awt.BorderLayout;

public class Test01 extends JFrame {

private JPanel contentPane;
private JTextField textField;
private String s="",ssum="";
private int flag=0;
private double num1,num2,sum;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test01 frame = new Test01();
frame.setVisible(true);
frame.setResizable(false);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Test01() {
setTitle("\u8BA1\u7B97\u5668");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 248, 269);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);

JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
panel.setLayout(new GridLayout(4, 4, 8, 8));
textField = new JTextField();
textField.setFont(new Font("宋体", Font.PLAIN, 20));
textField.setHorizontalAlignment(SwingConstants.RIGHT);
textField.setColumns(23);

JButton btnNewButton_1 = new JButton("7");
panel.add(btnNewButton_1);
btnNewButton_1.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_2 = new JButton("8");
panel.add(btnNewButton_2);
btnNewButton_2.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_3 = new JButton("9");
panel.add(btnNewButton_3);
btnNewButton_3.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_4 = new JButton("/");
panel.add(btnNewButton_4);
btnNewButton_4.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
flag=2;
if(s!=""){
num1=Double.valueOf(s);
s="";
}else{
num1=0;
textField.setText("0");
}
}
});

JButton btnNewButton_6 = new JButton("4");
panel.add(btnNewButton_6);
btnNewButton_6.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton = new JButton("5");
panel.add(btnNewButton);
btnNewButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_5 = new JButton("6");
panel.add(btnNewButton_5);
btnNewButton_5.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_12 = new JButton("*");
panel.add(btnNewButton_12);
btnNewButton_12.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
flag=1;
if(s!=""){
num1=Double.valueOf(s);
s="";
}else{
num1=0;
textField.setText("0");
}
}
});

JButton btnNewButton_9 = new JButton("1");
panel.add(btnNewButton_9);
btnNewButton_9.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_8 = new JButton("2");
panel.add(btnNewButton_8);
btnNewButton_8.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_7 = new JButton("3");
panel.add(btnNewButton_7);
btnNewButton_7.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_10 = new JButton("-");
panel.add(btnNewButton_10);
btnNewButton_10.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
flag=4;
if(s!=""){
num1=Double.valueOf(s);
s="";
}else{
num1=0;
textField.setText("0");
}

}
});

JButton btnNewButton_11 = new JButton("0");
panel.add(btnNewButton_11);
btnNewButton_11.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_13 = new JButton(".");
panel.add(btnNewButton_13);
btnNewButton_13.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
s=s+e.getActionCommand();
textField.setText(s);

}
});

JButton btnNewButton_14 = new JButton("=");
panel.add(btnNewButton_14);
btnNewButton_14.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if(flag==1){
flag=0;
num2=Double.valueOf(s);
s="";
sum=num1*num2;
ssum=String.valueOf(sum);
textField.setText(ssum);
}else if(flag==2){
flag=0;
num2=Double.valueOf(s);
s="";
sum=num1/num2;
ssum=String.valueOf(sum);
textField.setText(ssum);
}else if(flag==3){
flag=0;
num2=Double.valueOf(s);
s="";
sum=num1+num2;
ssum=String.valueOf(sum);
textField.setText(ssum);
}else if(flag==4){
flag=0;
num2=Double.valueOf(s);
s="";
sum=num1-num2;
ssum=String.valueOf(sum);
textField.setText(ssum);
}else{
textField.setText("0");
}

}
});

JButton btnNewButton_15 = new JButton("+");
panel.add(btnNewButton_15);
btnNewButton_15.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
flag=3;
if(s!=""){
num1=Double.valueOf(s);
s="";
}else{
num1=0;
textField.setText("0");
}

}
});

JPanel panel_1 = new JPanel();
contentPane.add(panel_1, BorderLayout.NORTH);
panel_1.add(textField);

}

}

第二个,老师给的范例,代码美观,呵呵。

package com.cn;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Jsq extends JFrame implements ActionListener {
double num1, num2, num3;
boolean end, add, mul, sub, div;
JTextField t = new JTextField("0");
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
JButton b3 = new JButton("3");
JButton b4 = new JButton("+");
JButton b5 = new JButton("4");
JButton b6 = new JButton("5");
JButton b7 = new JButton("6");
JButton b8 = new JButton("-");
JButton b9 = new JButton("7");
JButton b10 = new JButton("8");
JButton b11 = new JButton("9");
JButton b12 = new JButton("*");
JButton b13 = new JButton(".");
JButton b14 = new JButton("0");
JButton b15 = new JButton("=");
JButton b16 = new JButton("/");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();

public Jsq() {
setTitle("计算器");
setResizable(false);
setBounds(100, 100, 230, 230);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(p1, "North");
t.setEditable(false);
t.setHorizontalAlignment(JTextField.CENTER);
t.setColumns(18);
t.setHorizontalAlignment(JTextField.RIGHT);
p1.add(t);
GridLayout l = new GridLayout(4, 0);
l.setVgap(10);
l.setHgap(10);
p2.setLayout(l);
add(p2, "Center");
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(b10);
p2.add(b11);
p2.add(b12);
p2.add(b13);
p2.add(b14);
p2.add(b15);
p2.add(b16);
JLabel ll = new JLabel();
ll.setPreferredSize(new Dimension(10, 0));
add(ll, "West");
JLabel rl = new JLabel();
rl.setPreferredSize(new Dimension(10, 0));
add(rl, "East");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
setVisible(true);
}

public static void main(String args[]) {
Jsq f = new Jsq();
}

public void num(int i) {
String s = String.valueOf(i);
if (end) { // 判断操作数输入是否结束
t.setText("0");
end = false;
}
if ((t.getText()).equals("0")) {
// 如果文本框的内容为零,则覆盖文本框的内容
t.setText(s);
} else {
// 如果文本框的内容不为零,则在内容后面添加数字
String str;
str = t.getText() + s;
t.setText(str);
}
}

public void sign(int i) {
if (i == 1) {
add = true;
mul = false;
sub = false;
div = false;
}
if (i == 2) {
add = false;
mul = false;
sub = true;
div = false;
}
if (i == 3) {
add = false;
mul = true;
sub = false;
div = false;
}
if (i == 4) {
add = false;
mul = false;
sub = false;
div = true;
}
num1 = Double.parseDouble(t.getText());
end = true;
}

public void point() {
String s;
if (t.getText().indexOf('.') < 0) {
s = t.getText() + ".";
t.setText(s);
}
}

public void eql() {
num2 = Double.parseDouble(t.getText());
if (add)
num3 = num1 + num2;
if (mul)
num3 = num1 * num2;
if (sub)
num3 = num1 - num2;
if (div)
num3 = num1 / num2;
String s = String.valueOf(num3);
t.setText(s);
end = true;
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1)
num(1);
if (e.getSource() == b2)
num(2);
if (e.getSource() == b3)
num(3);

if (e.getSource() == b5)
num(4);
if (e.getSource() == b6)
num(5);
if (e.getSource() == b7)
num(6);
if (e.getSource() == b9)
num(7);
if (e.getSource() == b10)
num(8);
if (e.getSource() == b11)
num(9);
if (e.getSource() == b14)
num(0);
if (e.getSource() == b4)
sign(1);
if (e.getSource() == b8)
sign(2);
if (e.getSource() == b12)
sign(3);
if (e.getSource() == b16)
sign(4);
if (e.getSource() == b13)
point();
if (e.getSource() == b15)
eql();
}
}


运行效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息