JAVA编写的一个简单的计算器

做的项目里面有一个是计算器的。做得比较简单,只是普通的加减乘除等于小数点负号删除退格等,其他功能如科学计算、进制转换,其实难度也不大,就是懒得去弄那些。整个程序可以说是自己独立完成的吧,因为没什么花哨,无非就是运算时条件多弄点,让程序不出BUG。

周末在家设置了一下字体和输入框,搞大了点,看着也舒服了点。当然,这界面很普通,没啥特色。整个代码也没啥特色,刚开始写了些,其他的就复制,回来才发现代码太多了,不过懒得改,所以整个代码也没用到方法。这完全是一大败笔,所以,没打算用这个当毕业答辩。嘿嘿,有一点还好,就是暂时没发现BUG。

不说了,贴上去代码:

package org.ckw;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Test2 {

static void f(){

}

static String s="";

static String s1="";

static double d2=0;

static double sum=0;

static int a=0;

static int a1=0;

public static void main(String[] args) {

JFrame jf=new JFrame("计算器");

final JTextField jtf=new JTextField(30);//文本框

jtf.setHorizontalAlignment(jtf.RIGHT);//右对齐

jtf.setFont(new Font(null, Font.PLAIN, 30));

jtf.setText("0");

JPanel jp0=new JPanel();

jp0.setLayout(new BorderLayout());

jp0.add(jtf);

JPanel jp=new JPanel();

jp.setLayout(new GridLayout(4,4,3,3));

JPanel jp1=new JPanel();

jp1.setLayout(new GridLayout(1,2,3,3));

JButton b1=new JButton("1");

b1.setFont(new Font(null, Font.PLAIN, 15));

b1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"1");

s=s+"1";

}

});

JButton b2=new JButton(s+"2");

b2.setFont(new Font(null, Font.PLAIN, 15));

b2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"2");

s=s+"2";

}

});

JButton b3=new JButton("3");

b3.setFont(new Font(null, Font.PLAIN, 15));

b3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"3");

s=s+"3";

}

});

JButton b4=new JButton("4");

b4.setFont(new Font(null, Font.PLAIN, 15));

b4.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"4");

s=s+"4";

}

});

JButton b5=new JButton("5");

b5.setFont(new Font(null, Font.PLAIN, 15));

b5.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"5");

s=s+"5";

}

});

JButton b6=new JButton("6");

b6.setFont(new Font(null, Font.PLAIN, 15));

b6.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"6");

s=s+"6";

}

});

JButton b7=new JButton("7");

b7.setFont(new Font(null, Font.PLAIN, 15));

b7.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"7");

s=s+"7";

}

});

JButton b8=new JButton("8");

b8.setFont(new Font(null, Font.PLAIN, 15));

b8.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"8");

s=s+"8";

}

});

JButton b9=new JButton("9");

b9.setFont(new Font(null, Font.PLAIN, 15));

b9.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"9");

s=s+"9";

}

});

JButton b0=new JButton("0");

b0.setFont(new Font(null, Font.PLAIN, 16));

b0.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText(s+"0");

s=s+"0";

}

});

JButton bdeng=new JButton("=");

bdeng.setBackground(Color.ORANGE);

bdeng.setFont(new Font(null, Font.PLAIN, 24));

bdeng.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

if(s.length()>0^(s.length()==1&&s.indexOf(‘-‘) == 0)){

if(a==1){

sum+=Double.parseDouble(jtf.getText());;

}else if(a==2){

sum-=Double.parseDouble(jtf.getText());;

}else if(a==3){

sum*=Double.parseDouble(jtf.getText());;

}else if(a==4){

sum/=Double.parseDouble(jtf.getText());;

}else{

sum=Double.parseDouble(jtf.getText());

}

jtf.setText(""+sum);

s="";

a=0;

a1=1;

}

}

});

JButton bjia=new JButton("+");

bjia.setFont(new Font(null, Font.PLAIN, 16));

bjia.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

if(s.length()>0||a1==1){

if(a==1){

sum+=Double.parseDouble(jtf.getText());

}else if(a==2){

sum-=Double.parseDouble(jtf.getText());;

}else if(a==3){

sum*=Double.parseDouble(jtf.getText());;

}else if(a==4){

sum/=Double.parseDouble(jtf.getText());;

}else{

sum=Double.parseDouble(jtf.getText());

}

jtf.setText(""+sum);

s="";

a=1;

a1=0;

}

}

});

JButton bjian=new JButton("-");

bjian.setFont(new Font(null, Font.PLAIN, 16));

bjian.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

if(s.length()>1||(s.length()>0&&jtf.getText().indexOf("-")!=0||a1==1)){

if(a==1){

sum+=Double.parseDouble(jtf.getText());

}else if(a==2){

sum-=Double.parseDouble(jtf.getText());

}else if(a==3){

sum*=Double.parseDouble(jtf.getText());

}else if(a==4){

sum/=Double.parseDouble(jtf.getText());

}else{

sum=Double.parseDouble(jtf.getText());

}

jtf.setText(""+sum);

s="";

a=2;

a1=0;

}

if(jtf.getText().length()==1&&jtf.getText().indexOf("0")==0){

if(jtf.getText().indexOf("-")==0){

System.out.println(123);

}else{

jtf.setText("-");

s="-";

}

}

}

});

JButton bceng=new JButton("x");

bceng.setFont(new Font(null, Font.PLAIN, 16));

bceng.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

if(s.length()>0||a1==1){

if(a==1){

sum+=Double.parseDouble(jtf.getText());

}else if(a==2){

sum-=Double.parseDouble(jtf.getText());;

}else if(a==3){

sum*=Double.parseDouble(jtf.getText());;

}else if(a==4){

sum/=Double.parseDouble(jtf.getText());;

}else{

sum=Double.parseDouble(jtf.getText());

}

jtf.setText(""+sum);

s="";

a=3;

a1=0;

}

}

});

JButton bchu=new JButton("÷");

bchu.setFont(new Font(null, Font.PLAIN, 16));

bchu.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

if(s.length()>0||a1==1){

if(a==1){

sum+=Double.parseDouble(jtf.getText());

}else if(a==2){

sum-=Double.parseDouble(jtf.getText());;

}else if(a==3){

sum*=Double.parseDouble(jtf.getText());;

}else if(a==4){

sum/=Double.parseDouble(jtf.getText());;

}else{

sum=Double.parseDouble(jtf.getText());

}

jtf.setText(""+sum);

s="";

a=4;

a1=0;

}

}

});

JButton bdian=new JButton(".");

bdian.setFont(new Font(null, Font.PLAIN, 16));

bdian.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

if(s.indexOf(‘.‘) < 0){

jtf.setText(s+".");

s=s+".";

}

}

});

JButton bsan=new JButton("C");

bsan.setForeground(Color.RED);

bsan.setFont(new Font(null, Font.PLAIN, 16));

bsan.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

jtf.setText("0");

sum=0;

s="";

}

});

JButton btui=new JButton("DEL");

btui.setForeground(Color.ORANGE);

btui.setFont(new Font(null, Font.PLAIN, 14));

btui.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

if (jtf.getText().length()>0) {

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

s=jtf.getText();

}

if (jtf.getText().length()==0) {

jtf.setText("0");

}

}

});

jp.add(bsan);jp.add(btui);jp.add(bchu);jp.add(bceng);

jp.add(b7);jp.add(b8);jp.add(b9);jp.add(bjia);

jp.add(b4);jp.add(b5);jp.add(b6);jp.add(bjian);

jp.add(b1);jp.add(b2);jp.add(b3);jp.add(bdian);

jp1.add(b0);jp1.add(bdeng);

jf.add(BorderLayout.NORTH, jp0);

jf.add(BorderLayout.CENTER, jp);

jf.add(BorderLayout.SOUTH, jp1);

jf.setVisible(true);

jf.setBounds(200, 200, 400, 300);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

时间: 2024-08-07 12:45:26

JAVA编写的一个简单的计算器的相关文章

JS实现一个简单的计算器

使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除.效果如上: 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择框的值. 提示:document.getElementById( id名 ).value 获取或设置 id名的值. 第三步: 获取通过下拉框来选择的值来改变加减乘除的运算法则. 提示:使用switch判断运算法则. 第四步:  通过 = 按钮来调用创建的函数,得到结果. 注意: 使用parseInt

java中,一个简单但出错率又大的‘加法’题,1+1+&#39;1&#39;+1+1+1+1+&quot;1&quot;=?

1+1+'1'+1+1+1+1+"1"=? 结果是多少?很多人看了题之后,可能会说结果是71.  当然有的童鞋可能会说很简单,放工具里运行一下就知道结果了,如果不运行代码,你会得出一个什么样的结果呢? 如果告诉你答案是551,会迷惑么?怎么会得出551? 下面我们来看看怎么算的: 1.我们大家都知道1 .'1'."1"的区别,1 表示一个int类型,’1'是表示一个char类型,"1" 表示一个字符串类型. 2.1+1+'1'+1+1+1+1+&

Java实现的一个简单的下载器

package com.shawearn.download;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.EOFException;import java.io.File;http://www.huiyi8.com/jiaoben/import j

使用JS完成一个简单的计算器功能

使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElementById("id").value = 1: 取值:var = document.getElementById("id").value: 任务 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择框的值. 提示:document.getElement

Swift之旅:1.概述-用Swift实现一个简单的计算器

学习所用到的资源: 斯坦福大学公开课:iOS 8开发 网易空开课地址链接:斯坦福大学公开课:IOS8开发 github上字幕链接:字幕 百度网盘资源下载链接:百度网盘 1.详解IOS编程的四个层 ①cocoa touch层 这是我们最长用到的层,里面最长用到的当然是最基础的控件 ②媒体层(Media) ③核心服务层 ④核心操作系统层 2.新建一个Swift的IOS工程 ①打开Xcode,按照图示新建一个工程 ②选择Application 然后 单击Sigle View Application.

java写的一个简单学生管理系统[改进]

用Java写的一个简单学生管理系统 import java.util.*; public class student_cj {  public static void main(String[] args){      Scanner in=new Scanner(System.in);   System.out.print("请输入学生人数:");   int num=in.nextInt();//学生人数   String[] str=new String[num];//结合一行数

初学者如何做一个简单的计算器,代码分享

先新建一个类 startCalculator 声明如下 #import <Foundation/Foundation.h> @interface StartCalculator : NSObject //声明两个要计算的变量 @property float opValue1; @property float opValue2; //声明一个运算符 @property char op; //普通方法 //- (float) gzyWorkAdd; // //- (float) gzyWorkSu

C++编写的一个简单的猜数字游戏源码

将开发过程比较重要的一些内容段做个记录,下面内容段是关于C++编写的一个简单的猜数字游戏的内容. #include <iostream> #include <string> #include <cstdlib> #include <cctype> #include <ctime> #include <conio.h> using namespace std; int main () { int wins = 0; int losses

python编写的一个简单那的WSGI PDF server 的代码

将开发过程比较常用的内容段备份一次,下边内容是关于python编写的一个简单那的WSGI PDF server 的内容. # basic_wsgi_pdf_server.py # Basic WSGI PDF server in Python. # Adapted from: from PDFWriter import PDFWriter from wsgiref.simple_server import make_server host = 'localhost' port = 8888 de