package lee.com.tool;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class calculator {
private JTextField textField;
private JFrame frame;
private String result; //表示用算后的结果变量
private String usetype; //用算类型 及 加,减,乘,除 和空,空表示没用算
private boolean tabflag=false; // 来表示数字是否是独立的 及tabflag=false连续输入的数字按钮会被看成是一个数字
private String rvresult="0"; //表示要进行用算前的变量
/**
* Launch the application
* @param muscilee
*/
public static void main(String args[]) {
try {
calculator window = new calculator();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the application
*/
public calculator() {
initialize();
}
/**
* Initialize the contents of the frame
*/
private void initialize() {
frame = new JFrame("musiclee计算器");
frame.setResizable(false);
frame.setAlwaysOnTop(true);
frame.getContentPane().setLayout(null);
frame.setBounds(100, 100, 372, 323);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textField = new JTextField();
textField.setEditable(false);
textField.setBounds(53, 22, 275, 23);
frame.getContentPane().add(textField);
final JButton button = new JButton();
button.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=1;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button.setText("1");
button.setBounds(53, 67, 51, 27);
frame.getContentPane().add(button);
final JButton button_1 = new JButton();
button_1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=2;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_1.setText("2");
button_1.setBounds(110, 67, 51, 27);
frame.getContentPane().add(button_1);
final JButton button_2 = new JButton();
button_2.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=3;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_2.setText("3");
button_2.setBounds(167, 67, 51, 27);
frame.getContentPane().add(button_2);
final JButton button_3 = new JButton();
button_3.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=4;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_3.setText("4");
button_3.setBounds(53, 114, 51, 27);
frame.getContentPane().add(button_3);
final JButton button_4 = new JButton();
button_4.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=5;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_4.setText("5");
button_4.setBounds(110, 114, 51, 27);
frame.getContentPane().add(button_4);
final JButton button_5 = new JButton();
button_5.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=6;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_5.setText("6");
button_5.setBounds(167, 114, 51, 27);
frame.getContentPane().add(button_5);
final JButton button_6 = new JButton();
button_6.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=7;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_6.setText("7");
button_6.setBounds(53, 161, 51, 27);
frame.getContentPane().add(button_6);
final JButton button_7 = new JButton();
button_7.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=8;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_7.setText("8");
button_7.setBounds(110, 161, 51, 27);
frame.getContentPane().add(button_7);
final JButton button_8 = new JButton();
button_8.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=9;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_8.setText("9");
button_8.setBounds(167, 161, 51, 27);
frame.getContentPane().add(button_8);
final JButton button_9 = new JButton();
button_9.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int num=0;
doButtonShow(tabflag,num,"num");
tabflag=false;
}
});
button_9.setText("0");
button_9.setBounds(53, 205, 108, 27);
frame.getContentPane().add(button_9);
final JButton button_10 = new JButton();
button_10.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
doButtonShow(tabflag,0,"Nod");
tabflag=false;
}
});
button_10.setText(".");
button_10.setBounds(167, 205, 51, 27);
frame.getContentPane().add(button_10);
final JButton button_11 = new JButton();
button_11.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
tabflag=true;
usetype="puls";
rvresult=textField.getText();
}
});
button_11.setText("+");
button_11.setBounds(230, 72, 45, 69);
frame.getContentPane().add(button_11);
final JButton button_12 = new JButton();
button_12.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
tabflag=true;
usetype="multiply";
rvresult=textField.getText();
result=rvresult;
}
});
button_12.setText("*");
button_12.setBounds(230, 161, 45, 69);
frame.getContentPane().add(button_12);
final JButton button_13 = new JButton();
button_13.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
tabflag=true;
usetype="minus";
rvresult=textField.getText();
result=rvresult;
}
});
button_13.setText("-");
button_13.setBounds(281, 72, 45, 69);
frame.getContentPane().add(button_13);
final JButton button_14 = new JButton();
button_14.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
tabflag=true;
usetype="division";
rvresult=textField.getText();
}
});
button_14.setText("/");
button_14.setBounds(281, 161, 45, 69);
frame.getContentPane().add(button_14);
final JButton button_15 = new JButton();
button_15.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
result=doResult();
textField.setText(result);
tabflag=true;
usetype="";
}
});
button_15.setText("=");
button_15.setBounds(53, 249, 97, 27);
frame.getContentPane().add(button_15);
final JButton button_16 = new JButton();
button_16.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
doButtonShow(tabflag,0,"minus");
tabflag=false;
}
});
button_16.setText("负");
button_16.setBounds(167, 251, 51, 23);
frame.getContentPane().add(button_16);
final JButton resetButton = new JButton();
resetButton.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
result=null;
usetype=null;
tabflag=false;
rvresult="0";
textField.setText(result);
}
});
resetButton.setText("reset");
resetButton.setBounds(229, 236, 99, 40);
frame.getContentPane().add(resetButton);
}
public void doButtonShow(boolean flag,int num,String nodORminus)
{
String tstr;
tstr=textField.getText();
if(flag)
{
textField.setText(String.valueOf(num));
result=String.valueOf(num);
}else{
if(nodORminus.equals("Nod"))
{
if(tstr.indexOf(".")==-1)
{
tstr=tstr+".";
}
textField.setText(tstr.trim());
result=tstr;
}else if(nodORminus.equals("minus"))
{
if(tstr.indexOf("-")==-1)
{
tstr="-"+tstr;
}
textField.setText(tstr.trim());
result=tstr;
}
else{
tstr=tstr+String.valueOf(num);
textField.setText(tstr.trim());
result=tstr;
}
}
}
public String doUse(double frist,double secend,String type)
{
this.tabflag=true;
double res=0;
if(type.equals("puls"))
{
res=frist+secend;
}else if(type.equals("minus"))
{
res=frist-secend;
}
else if(type.equals("multiply"))
{
res=frist*secend;
}
else if(type.equals("division"))
{
res=frist/secend;
}
return String.valueOf(res);
}
public String doResult()
{
Double nowvl=Double.valueOf(textField.getText());
String tempStr;
if(usetype.length()!=0)
{
tempStr=doUse(Double.valueOf(rvresult),nowvl,usetype);
}else{
tempStr=textField.getText();
}
return tempStr;
}
}