一个简化的计算器,简化计算器,[Java]代码mpor
分享于 点击 9091 次 点评:126
一个简化的计算器,简化计算器,[Java]代码mpor
[Java]代码
mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class TestComputer extends JFrame implements ActionListener { JTextField jtf = new JTextField(10); private boolean append = false; private String op1 = "0"; private String operator = "+"; public TestComputer(){ super("计算器"); setSize(400,400); setLocation(200,300); setResizable(false); this.setBackground(Color.lightGray); this.setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel panel = new JPanel(new GridLayout(5,4,5,5));//面板采用网格布局 // this.getContentPane().add(panel); // JTextField jtf = new JTextField(10); String str[]= {"sqrt","+/-","Backspace","C","7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"}; JButton buttons[] = new JButton[str.length]; for (int i=0; i<buttons.length; i++) { buttons[i] = new JButton(str[i]); panel.add(buttons[i]); buttons[i].addActionListener(this); //为按钮注册单击事件监听器 } this.add(jtf,BorderLayout.NORTH); this.add(panel,BorderLayout.SOUTH); this.pack(); this.setVisible(true); } public void actionPerformed(ActionEvent e) { String comn = e.getActionCommand(); //处理数字 if ("0123456789".indexOf(comn) != -1) { if (append) {// 追加 String temp = jtf.getText(); jtf.setText(temp + comn); } else {// 替换 jtf.setText(comn); append = true; } } //处理运算符 else if ("+-*/".indexOf(comn) != -1) { op1 = jtf.getText(); operator = comn; append = false; } else if ("=".indexOf(comn) != -1) { String op2 = jtf.getText(); double d1 = Double.parseDouble(op1); double d2 = Double.parseDouble(op2); if ("+".equals(operator)) { d1 = d1 + d2; } else if ("-".equals(operator)) { d1 = d1 - d2; } else if ("*".equals(operator)) { d1 = d1 * d2; } else if ("/".equals(operator)) { d1 = d1 / d2; } jtf.setText(d1 + ""); append = false; } else if (".".equals(comn)) { String temp = jtf.getText(); if (temp.indexOf(".") == -1) { jtf.setText(temp + "."); append = true; } } else if ("+/-".equals(comn)) { String temp = jtf.getText(); if (temp.startsWith("-1")) { jtf.setText(temp.substring(1)); } else { jtf.setText("-" + temp); } } else if ("Backspace".equals(comn)) { String temp = jtf.getText(); if (temp.length() > 0) { jtf.setText(temp.substring(0, temp.length() - 1)); } } else if ("CE".equals(comn) || "C".equals(comn)) { jtf.setText("0"); append = false; } } public static void main(String arg[]) { TestComputer c= new TestComputer(); }}
用户点评