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

java用制作小计算器

2017-09-20 13:52 295 查看
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Caculator implements ActionListener {

private JFrame frame;
private JTextField jtx;
private JButton[] bus;
private char[] strs;
private JButton bu;
private String d_one = "";
private String operator = "";

public static void main(String[] args) {
new Caculator();
}

public Caculator() {
// 定义一个框架,显示信息为“计算器”
frame = new JFrame("计算器");
// 定义文本框,长度定为14(JTextField是单行文本框,里面的内容只能显示为一行)
jtx = new JTextField(14);
// 创建16个按钮
bus = new JButton[16];
strs = "789/456*123-0%+=".toCharArray();
// 给每个按钮添加一个显示信息,并且创建点击监听
for (int i = 0; i < 16; i++) {
bus[i] = new JButton(strs[i] + "");
bus[i].addActionListener(this);
}
bu = new JButton("AC");
bu.addActionListener(this);
init();
}

public void init() {
// 创建一个中间容器,用来存放文本框和按钮
JPanel jp1 = new JPanel();
jp1.add(jtx);
jp1.add(bu);
frame.add(jp1, BorderLayout.NORTH);
JPanel jp2 = new JPanel();
jp2.setLayout(new GridLayout(4, 4));
for (int i = 0; i < 16; i++) {
jp2.add(bus[i]);
}
frame.add(jp2, BorderLayout.CENTER);
// 根据窗口的布局和组件来确定边框的大小
frame.pack();
frame.setLocation(300, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

@Override
public void actionPerformed(ActionEvent actionEvent) {
String conn = actionEvent.getActionCommand();
if ("AC".equals(conn)) {
d_one = "";
operator = "";
jtx.setText("");
return;
}
if (("+-*/%".indexOf(conn)) != -1) {
if ("".equals(d_one) && "".equals(jtx.getText()))
return;
d_one = jtx.getText();
operator = conn;
jtx.setText("");
return;
}
if ("=".equals(conn)) {
if ("".equals(d_one) && "".equals(jtx.getText()))
return;
double value = 0;
if ("+".equals(operator)) {
value = Double.parseDouble(d_one)
+ Double.parseDouble(jtx.getText());
jtx.setText(value + "");
}
if ("-".equals(operator)) {
value = Double.parseDouble(d_one)
- Double.parseDouble(jtx.getText());
jtx.setText(value + "");
}
if ("*".equals(operator)) {
value = Double.parseDouble(d_one)
* Double.parseDouble(jtx.getText());
jtx.setText(value + "");
}
if ("/".equals(operator)) {
value = Double.parseDouble(d_one)
/ Double.parseDouble(jtx.getText());
jtx.setText(value + "");
}
if ("%".equals(operator)) {
value = Double.parseDouble(d_one)
% Double.parseDouble(jtx.getText());
jtx.setText(value + "");
}
d_one = value + "";
return;
}
jtx.setText(jtx.getText() + conn);
}

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