java实现的计算器

原创 2012年03月22日 12:43:25
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;

public class ButtonArray {
	public static void main(String[] args) {
		ButtonArrayWin win = new ButtonArrayWin();
	}
}

class ButtonArrayWin extends JFrame implements ActionListener {
	JTextField textField;
	JButton[][] buttons;
	String number = "";
	String operate;
	Double num;
	Boolean flag = true;// 可以输入第一个数
	Boolean flag1 = true;// 可以连续输入
	Double result = 0.0;

	public ButtonArrayWin() {
		super();
		BorderLayout borderLayout = (BorderLayout) getContentPane().getLayout();
		borderLayout.setHgap(20);
		borderLayout.setVgap(20);
		setTitle("按钮数组实现计算器界面");
		setBounds(100, 100, 290, 282);
		setVisible(true);
		validate();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		textField = new JTextField();
		textField.setHorizontalAlignment(SwingConstants.TRAILING);
		textField.setPreferredSize(new Dimension(12, 50));
		getContentPane().add(textField, BorderLayout.NORTH);
		textField.setColumns(10);
		final GridLayout gridLayout = new GridLayout(4, 0);
		gridLayout.setHgap(5);
		gridLayout.setVgap(5);
		JPanel panel = new JPanel();
		panel.setLayout(gridLayout);
		getContentPane().add(panel, BorderLayout.CENTER);
		String[][] names = { { "1", "2", "3", "+" }, { "4", "5", "6", "-" },
				{ "7", "8", "9", "*" }, { ".", "0", "=", "/" } };
		buttons = new JButton[4][4];
		for (int row = 0; row < names.length; row++)
			for (int col = 0; col < names.length; col++) {
				buttons[row][col] = new JButton(names[row][col]);
				buttons[row][col].addActionListener(this);
				panel.add(buttons[row][col]);
			}
	}

	public void actionPerformed(ActionEvent e) {
		JButton button = (JButton) e.getSource();
		if ((button != buttons[0][3]) && (button != buttons[1][3])
				&& (button != buttons[2][3]) && (button != buttons[3][2])
				&& (button != buttons[3][3])) { // button 为数字按钮 输入数字
			if (flag1 == true) {
				number = textField.getText() + button.getText();
				textField.setText(number);
			} else {
				textField.setText("");
				number = textField.getText() + button.getText();
				textField.setText(number);
				flag1 = true;
			}
			num = Double.parseDouble(number);
			if (flag == true)
				result = num; // 输入的是第一个数
			else {
				if (operate.equals("+"))
					result = result + num;
				if (operate.equals("-"))
					result = result - num;
				if (operate.equals("*"))
					result = result * num;
				if (operate.equals("/"))
					result = result / num;
			}
		} else { // button为运算符按钮 计算 
			operate = button.getText();
			if (operate.equals("=")) {
				flag1 = false;
				flag = true;
			}

			else {
				flag1 = false; // 要清空了 再输入第二个数
				flag = false; // 可以运算了
			}
			textField.setText(String.valueOf(result));// 按下操作符 就要输出一次结果
		}
	}

}

相关文章推荐

java实现简单的计算器

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Caculator { public...

java代码实例 使用switch实现简易的计算器(实现加减乘除)

import java.util.Scanner; /* * 使用switch实现简易的计算器(实现加减乘除); */ public class test { public static v...

java实现多项式计算器

java实现多项式计算器随手写的一个计算器,源码如下 package util;import java.text.DecimalFormat; import java.util.HashSet; ...

我的JAVA計算器

運行界面如下:只有兩個文件,一個作框架支持頁面,一個為功能性頁面,很簡單,在參加省程序設計前期作為練習寫的,如果對你有用,你可以拿去看看,非常適合于初學者。JSQ.java:package jsq;i...

java课程设计(计算器)

JAVA课程 设 计 报 告              1206401-18   瞿杰 一、设计时间    2013年6月 24日-----6月28日 二、设计地点    湖南城市学院实验...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JAVA的简单计算器设计

一个很简单的例子 希望各位大神指导指导。 package calculator; import java.awt.BorderLayout; import java.awt.Gr...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JAVA实现简单计算器

实现简单的加减乘除运算package chapter07.project_4; import java.awt.*; import java.awt.event.*; import javax.sw...

简单计算器

问题描述 一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。 输入 输入只有一行,共有三个参数,其中第1、2个参数为整...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java实现的计算器
举报原因:
原因补充:

(最多只允许输入30个字)