我的计算器

package lab16;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.*;

public class Calculator extends JFrame{

private JPanel jp;
private JButton btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,
btnAdd,btnSub,btnMul,btnExc,btnDot,btnSign;
private JTextField txtNum;
private List<JButton> btnNums;

private double num = 0;
private String symbol = null;
private int flag = 0;

private static final long serialVersionUID = 1L;

public Calculator(){
super("我的计算器");

jp = new JPanel();
jp.setLayout(new GridLayout(4,4,10,10));
txtNum = new JTextField("0");
txtNum.setHorizontalAlignment(JTextField.RIGHT);
btnNums = new ArrayList<JButton>();
this.add(txtNum,BorderLayout.NORTH);

btn7 = new JButton("7");
btn8 = new JButton("8");
btn9 = new JButton("9");
btnExc = new JButton("/");
jp.add(btn7);
jp.add(btn8);
jp.add(btn9);
jp.add(btnExc);

btn4 = new JButton("4");
btn5 = new JButton("5");
btn6 = new JButton("6");
btnMul = new JButton("*");
jp.add(btn4);
jp.add(btn5);
jp.add(btn6);
jp.add(btnMul);

btn1 = new JButton("1");
btn2 = new JButton("2");
btn3 = new JButton("3");
btnSub = new JButton("-");
jp.add(btn1);
jp.add(btn2);
jp.add(btn3);
jp.add(btnSub);

btn0 = new JButton("0");
btnDot = new JButton(".");
btnSign = new JButton("=");
btnAdd = new JButton("+");
jp.add(btn0);
jp.add(btnDot);
jp.add(btnSign);
jp.add(btnAdd);

btnNums.add(btn0);btnNums.add(btn1);btnNums.add(btn2);btnNums.add(btn3);
btnNums.add(btn4);btnNums.add(btn5);btnNums.add(btn6);btnNums.add(btn7);
btnNums.add(btn8);btnNums.add(btn9);btnNums.add(btnAdd);btnNums.add(btnSub);
btnNums.add(btnMul);btnNums.add(btnExc);btnNums.add(btnDot);btnNums.add(btnSign);
for (int i = 0; i < btnNums.size(); i++) {
btnNums.get(i).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

if(flag==1 && (e.getActionCommand().equals("0") || e.getActionCommand().equals("1") || e.getActionCommand().equals("2") ||
e.getActionCommand().equals("3") || e.getActionCommand().equals("4") || e.getActionCommand().equals("5") ||
e.getActionCommand().equals("6") || e.getActionCommand().equals("7") || e.getActionCommand().equals("8") ||
e.getActionCommand().equals("9") || e.getActionCommand().equals("."))){
txtNum.setText(null);
}
if(txtNum.getText().equals("0")){
if(e.getActionCommand().equals("0")){
return;
}else{
txtNum.setText(null);
}
if(e.getActionCommand().equals(".")){
txtNum.setText("0.");
return;
}
}
if(txtNum.getText().indexOf(".") != -1 && e.getActionCommand().equals(".")){
return;
}

if(txtNum.getText() == null || txtNum.getText().equals("")){
if(e.getActionCommand().equals("+") || e.getActionCommand().equals("-") ||
e.getActionCommand().equals("*") || e.getActionCommand().equals("/")){
return;
}
}else if(e.getActionCommand().equals("+") || e.getActionCommand().equals("-") ||
e.getActionCommand().equals("*") || e.getActionCommand().equals("/")){
num =Double.valueOf(txtNum.getText());
symbol = e.getActionCommand();
txtNum.setText(null);
return;
}

if(e.getActionCommand().equals("=") && symbol == null){
return;
}else if(e.getActionCommand().equals("=") && symbol.equals("+")){
num += Double.valueOf(txtNum.getText());
String s = String.valueOf(num);
txtNum.setText(s);
symbol = null;
flag = 1;
return;
}else if(e.getActionCommand().equals("=") && symbol.equals("-")){
num -= Double.valueOf(txtNum.getText());
String s = String.valueOf(num);
txtNum.setText(s);
symbol = null;
flag = 1;
return;
}else if(e.getActionCommand().equals("=") && symbol.equals("*")){
num *= Double.valueOf(txtNum.getText());
String s = String.valueOf(num);
txtNum.setText(s);
symbol = null;
flag = 1;
return;
}else if(e.getActionCommand().equals("=") && symbol.equals("/")){
num /= Double.valueOf(txtNum.getText());
String s = String.valueOf(num);
txtNum.setText(s);
symbol = null;
flag = 1;
return;
}
flag = 0;
txtNum.setText(txtNum.getText()+e.getActionCommand());
}
});
}

this.add(jp);
this.setSize(300, 250);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
}

public static void main(String [] args){
new Calculator();
}

}

时间: 2024-10-13 23:28:32

我的计算器的相关文章

【自动化__GUI自动化】__java__Windows应用程序识别__计算器

一.代码如下 package www.woniu.gui.one; import java.awt.AWTException; import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.aw

bzoj2242: [SDOI2011]计算器.

2242: [SDOI2011]计算器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 4353  Solved: 1679[Submit][Status][Discuss] Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给定y,z,p,计算满足Y^x ≡ Z ( mod P)的最小非负整数. In

j2ee-JSP之简单计算器

来源韩顺平.j2ee视频实战教程jsp第1讲(下集) -------------------------------------------------------------------------------------------------------- 简单计算器,可以控制输入的数(仅第一个数)不能为空且不能为字符串 myCal.jsp代码 1 <!--这是计算器的界面 --> 2 <!-- 可以控制输入的数不能为空且不能为字符串 --> 3 <%@ page co

通过键盘接收数值和字符,实现计算器功能。

import java.util.Scanner; /** * @author 蓝色以太 * 通过键盘接收数值和字符,实现计算器功能. */ public class Calculator { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数值:"); double num1=sc.nextDouble(); System.out

Android计算器APP练习(1)--- 界面

Android Studio 2.3.2 .参考文章:http://blog.csdn.net/like_program/article/details/51813632 1. 新建工程 MyCalculator,一路下一步,均采用默认值. 2. 按照要求修改三个xml文件内容.很多地方工程名字不一样,改成自己的名字. 3. 按照步骤修改Activity_main.XML文件,遇到问题: android:singleLine="false" 过时 暂时处理方式:删掉此行. 4. 按照步

一个简单的税利计算器(网页版)

嗯嗯,做一个简单的网页版的税率计算器,功能比较简单,但是相对比较实用.因为参考了一些其他作品,所以在计算汇率的时候习惯性的是以美元做单位.具体的功能有着较为详细的标注.仅供大家学习参考下. <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>JavaScript Loan Calculator</title>

反转波兰计算器

#include <iostream>using namespace std;typedef double stackEntry; const int overflow = 1;const int underflow = 2;const int success = 0; const int maxstack = 100;//栈的最大尺寸class stack{public: stack(); int pop(); int push(const stackEntry &item); in

JAVA编写的简单计算器

package com.hellojava.practice.test; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; impo

winform与面向对象应用做一个计算器12月28日

代码部分: public partial class 计算器 : Form { public 计算器() { InitializeComponent(); } private double sum = 0;//存放运算结果 private string biaodashi="";//用于存放除了刚点过的运算符的前面表达式部分 private string preyunsuanfu="";//用来存放上一步运算符,用于下次点运算符的时候算上一步的结果 private

LeetCode OJ:Basic Calculator(基础计算器)

Implement a basic calculator to evaluate a simple expression string. The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empty spaces . You may assume that the given expression is