java最简单计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易计算器的,时间模块具体添加还没搞好
package abc;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import ng.Math.* ;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.TimerTask;
import java.util.Calendar;
import java.util.Timer;
public class JCalculator extends JFrame implements ActionListener { private static final long serialVersionUID = -169068472193786457L;
private class WindowCloser extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
Label nowtime;//定义一个系统时间标签,用于显示获取当前系统时间
JLabel label=new JLabel();
public static String getCurrentTime()
//设置时间
{
System.currentTimeMillis();
Date currentTime = new Date(System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = sdf.format(currentTime);
return dateString;
}
int i;
private final String[] str = { "7", "8", "9", "/", "*", "4", "5", "6", "+",
"-", "1", "2", "3", ".", "=", "0","sqrt" };
JButton[] buttons = new JButton[str.length];
JButton reset = new JButton("CE");
JTextField display = new JTextField("0");
public JCalculator() {
super("简易计算器");
JPanel panel1 = new JPanel(new GridLayout(4,4));
for (i = 0; i < str.length; i++) {
buttons[i] = new JButton(str[i]);
panel1.add(buttons[i]);
}
JPanel panel2 = new JPanel(new BorderLayout());
panel2.add("Center", display);
panel2.add("East", reset);
getContentPane().setLayout(new BorderLayout());
getContentPane().add("North", panel2);
getContentPane().add("Center", panel1);
for (i = 0; i < str.length; i++)
buttons[i].addActionListener(this);
reset.addActionListener(this);
display.addActionListener(this);
addWindowListener(new WindowCloser());
setSize(800, 800);
setVisible(true);
pack();
}
public void actionPerformed(ActionEvent e) {
Object target = e.getSource();
String label = e.getActionCommand();
if (target == reset)
handleReset();
else if ("0123456789.".indexOf(label) > 0)
handleNumber(label);
else
handleOperator(label);
}
boolean isFirstDigit = true;
public void handleNumber(String key) {
if (isFirstDigit)
display.setText(key);
else if ((key.equals(".")) && (display.getText().indexOf(".") < 0)) display.setText(display.getText() + ".");
else if (!key.equals("."))
display.setText(display.getText() + key);
isFirstDigit = false;
}
public void handleReset() {
display.setText("0");
isFirstDigit = true;
operator = "=";
}
double number = 0.0;
String operator = "=";
public void handleOperator(String key) {
if (operator.equals("+"))
number += Double.valueOf(display.getText());
else if (operator.equals("-"))
number -= Double.valueOf(display.getText());
else if (operator.equals("sqrt"))
number=Math.sqrt(Double.valueOf(display.getText()));
else if (operator.equals("*"))
number *= Double.valueOf(display.getText());