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 swing实现简单计算器的开发

今天给大家介绍一下Java swing开发计算机的一个思路,比较简单,初学者可以借鉴下,大神请绕道。 代码实现如下: package calclutor; import java.awt.Bor...
  • llqqxf
  • llqqxf
  • 2016年07月14日 14:33
  • 13813

java-swing编程,实现计算器——支持四则运算

这两个星期学习了swing模块的一些内容,学习了java的GUI编程,自己动手写了一个计算器 首先是整个计算器的图形框架类CalFrame类 package Calculator; import...
  • tao20dage
  • tao20dage
  • 2016年08月27日 21:33
  • 1667

java实现简易计算器完整代码

早起起来没事,打开mac突然想写个小程序,就写来个简易的计算器,可以实现基本的运算,测试目前无bug,下面分享下自己的代码。 首先写了个简单的界面如下: 整个面板用了BorderLayout布局,...
  • sddchina
  • sddchina
  • 2015年03月08日 17:39
  • 40740

java实现简易计算器完整代码

早起起来没事,打开mac突然想写个小程序,就写来个简易的计算器,可以实现基本的运算,测试目前无bug,下面分享下自己的代码。 首先写了个简单的界面如下: 整个面板用了BorderLayout布局,...
  • sddchina
  • sddchina
  • 2015年03月08日 17:39
  • 40740

java简单工厂设计模式实现计算器

本文使用java的简单工厂设计模式实现简单计算器。 一、项目工程如下: 二、Operation类是计算器的父类: package 计算器; /** * 计算器的父类 * @autho...
  • tiandixuanwuliang
  • tiandixuanwuliang
  • 2017年10月20日 18:00
  • 5515

java实现加减的计算器。。。

要求: 编程:如下图所示,在JFrame上布置三个按钮及三个文本框。要求点击“+”按钮时,第三个文本框中为前两个文本框的和,点击“-”按钮时,第三个文本框中为前两个文本框的差,点击“...
  • Run_the_youth
  • Run_the_youth
  • 2016年06月03日 14:16
  • 2342

java实现多功能科学计算器(包括进制转换,三角函数,四则运算等)

多功能科学计算器(包括进制转换,三角函数,四则运算等
  • pudongqi
  • pudongqi
  • 2017年12月06日 22:53
  • 337

Java语言实现简易计算器(1)界面

import java.awt.BorderLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax....
  • xiaoyeren_ru
  • xiaoyeren_ru
  • 2015年07月13日 20:43
  • 593

Java实现简单计算器功能【简单工厂模式】

Java实现简单计算器功能【简单工长模式】
  • qq_20824051
  • qq_20824051
  • 2017年06月12日 21:26
  • 118

实现逆波兰表达式的java计算器

最近在利用java进行课程设计,需要实现一个逆波兰表达式操作的计算器。我的java是刚入门水平,通过看各种教程和视频,网上查阅等等途径,虽然过程曲折、代码书写不规范、面向对象的思想不够清晰,但终究还是...
  • Bring_me_the_code
  • Bring_me_the_code
  • 2015年02月01日 18:33
  • 461
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java实现的计算器
举报原因:
原因补充:

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