java代码编写计算器
2017-08-05 19:18
453 查看
package shx;
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 Jsq implements ActionListener {
private JFrame frame;
private JButton[] bus;
private JTextField jtx;
private JButton bu;
private char[] strs;
private String d_one = "";
private String operator;
public static void main(String[] args) {
new Jsq();
}
public Jsq() {
frame = new JFrame("计算器");
jtx = new JTextField(14);
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("C");
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);
}
public void actionPerformed(ActionEvent arg0) {
String conn = arg0.getActionCommand();
if ("C".equals(conn)) {
d_one = "";
operator = "";
jtx.setText("");
return;
}
if(".".equals(conn)){
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 db = 0;
if ("+".equals(operator)) {
db = Double.parseDouble(d_one) + Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("-".equals(operator)) {
db = Double.parseDouble(d_one) - Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("*".equals(operator)) {
db = Double.parseDouble(d_one) * Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("/".equals(operator)) {
db = Double.parseDouble(d_one) / Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
d_one = db + "";
return;
}
jtx.setText(jtx.getText() + conn);
}
}
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 Jsq implements ActionListener {
private JFrame frame;
private JButton[] bus;
private JTextField jtx;
private JButton bu;
private char[] strs;
private String d_one = "";
private String operator;
public static void main(String[] args) {
new Jsq();
}
public Jsq() {
frame = new JFrame("计算器");
jtx = new JTextField(14);
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("C");
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);
}
public void actionPerformed(ActionEvent arg0) {
String conn = arg0.getActionCommand();
if ("C".equals(conn)) {
d_one = "";
operator = "";
jtx.setText("");
return;
}
if(".".equals(conn)){
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 db = 0;
if ("+".equals(operator)) {
db = Double.parseDouble(d_one) + Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("-".equals(operator)) {
db = Double.parseDouble(d_one) - Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("*".equals(operator)) {
db = Double.parseDouble(d_one) * Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("/".equals(operator)) {
db = Double.parseDouble(d_one) / Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
d_one = db + "";
return;
}
jtx.setText(jtx.getText() + conn);
}
}
相关文章推荐
- 200行Java代码编写一个计算器程序
- Eclipse下编写HTML/CSS/JS/JSP/Java代码时,自动提示代码
- Java代码编写的30条建议
- JAVA代码编写的30条建议
- 黑马程序员__小项目编写计算器代码!
- Lombok插件,编写简略风格Java代码神器
- Android studio 编写测试纯Java代码
- java编写的计算器源代码
- 利用java代码编写倒三角▽
- Java代码编写的30条建议
- 在 Eclipse Galileo 中更快地编写 Java 代码
- 编写高质量JAVA代码系列(建议1-10)读后简练总结
- java在线支付---09,10,11,12_在线支付_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现
- 如何在Android上编写高效的Java代码
- 敏捷开发中编写高质量Java代码
- [编写高质量代码:改善java程序的151个建议]建议67 不同的列表选择不同的遍历方法
- 在敏捷开发中编写高质量Java代码
- 编写高质量代码--改善Java程序的151个建议精要
- Java下的Framework编写(反射,泛型,元数据,CGLib,代码动态生成,AOP,动态语言嵌入)(1)--序