java计算器设计内容_java计算器设计

package Calculator;

/**

*

* @author wanlin

*/

import java.awt.*;

import java.awt.event.*;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.*;

import javax.swing.JOptionPane;

public class Calculator1 extends JFrame implements ActionListener{

JTextField text1;

JTextField text2;

JButton button1,button2,button3;

JButton button4;

String[] str = {"MC","7","8","9","÷","sqrt","MR","4","5","6","×","exp",

"MS","1","2","3","-","log","M+","0","+/-",".","+","="};

int i;

boolean wanlin = true;

Calculator1(){

super("小小计算器--Wanlin");

setVisible(true);

setBounds(500,100,380,202);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLayout(new BorderLayout());

setResizable(false);

init();

}

void init(){

JButton[] buttons = new JButton[str.length];

button1 = new JButton("Backspace");

button2 = new JButton(" CE ");

button3 = new JButton(" C ");

button4 = new JButton("关于");

text1 = new JTextField("0");

text2 = new JTextField();

text2.setBackground(Color.GREEN);

Panel pane1 = new Panel();

Panel pane2 = new Panel();

Panel pane3 = new Panel(new GridLayout(4,6,3,3));

for(int i = 0;i

buttons[i] = new JButton(str[i]);

pane3.add(buttons[i]);

}

pane1.setLayout(new BorderLayout());

pane1.add("Center",text1);

pane1.add("East",button4);

pane2.add(text2);

pane2.add(button1);

pane2.add(button2);

pane2.add(button3);

add("North",pane1);

add("Center",pane2);

add("South",pane3);

SimpleDateFormat time = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

text2.setText(time.format(new Date()));

for(i = 0;i

buttons[i].addActionListener(this);

}

// button1.addActionListener(this);

button2.addActionListener(this);

button3.addActionListener(this);

button4.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e){

JOptionPane.showMessageDialog(null,"万 林","小组成员:",JOptionPane.INFORMATION_MESSAGE);

}

});

button1.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e){

if(Double.parseDouble(text1.getText()) > 0){

if(text1.getText().length() > 1){

text1.setText(text1.getText().substring(0,text1.getText().length() - 1));

}

else{

text1.setText("0");

wanlin = true;

}

}

}

});

}

@Override

public void actionPerformed(ActionEvent e){

// String tex1 = text1.getText();

String tex1 = e.getActionCommand();

// int x = Integer.parseInt(tex1);

Object source = e.getSource();

String nums = "0123456789.";

try{

if(source == button3 ||source == button2){

text1.setText("0");

wanlin = true;

}

else if(nums.indexOf(tex1)>=0){

num(tex1);

}

else{

opera(tex1);

}

}

catch(Exception ex){

text1.setText("输入有误!");

}

}

public void num(String data){

String tex2 = text1.getText();

if (wanlin){

text1.setText(data);

}

else if(data.equals(".") && tex2.indexOf(".")<0){

text1.setText(tex2+".");

}

else if(!data.equals(".")){

text1.setText(tex2+data);

}

wanlin = false;

}

double numberResult = 0.0;

String equ = "=";

public void opera(String ss){

double number = Double.valueOf(text1.getText());

if(equ.equals("+")){

// text1.setText("");

numberResult += number;

// text1.setText(String.valueOf(numberResult));

}

else if(equ.equals("-")){

// text1.setText("");

numberResult -= number;

// text1.setText(String.valueOf(numberResult));

}

else if(equ.equals("×")){

// text1.setText("");

numberResult *= number;

// text1.setText(String.valueOf(numberResult));

}

else if(equ.equals("÷")){

// text1.setText("");

numberResult /= number;

// text1.setText(String.valueOf(numberResult));

}

else if(equ.equals("sqrt")){

if(i>=0){

numberResult = Math.sqrt(number);

// text1.setText(String.valueOf(numberResult));

}

else{

text1.setText("负数能开平方根吗?");

}

}

else if(equ.equals("log")){

numberResult = Math.log(number);

// text1.setText(String.valueOf(numberResult));

}

else if(equ.equals("exp")){

numberResult = Math.exp(number); //

// text1.setText(String.valueOf(numberResult));

}

else if(equ.equals("=")){

numberResult = number;

}

text1.setText(String.valueOf(numberResult));

equ = ss;

wanlin = true;

}

public static void main(String[] args){

new Calculator1();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值