`
xzs603
  • 浏览: 32786 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

swing做的计算器

阅读更多

直接上代码:

package cn.tisson.test;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculator extends JFrame implements ActionListener {
	
	private static final long serialVersionUID = 1L;
	private JTextField txtResult;
	private JButton btnZero, btnOne, btnTwo, btnThree, btnFour, btnFive,
			btnSix, btnSeven, btnEight, btnNine, btnPlus, btnMinus, btnTimes,
			btnDivided, btnEqual, btnPoint, btnC, btnCE, btnSqrt, btnPlusMinus;
	int z;
	double x, y;
	StringBuffer str;

	public Calculator() {
		super("计算器");
		this.setSize(311, 231);
		this.setLocation(300, 300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		this.setLayout(new GridLayout(1, 1));// 网格布局
		JPanel panel = new JPanel(new GridLayout(6, 1));// 面板 网格布局6行1列
		this.add(panel);

		txtResult = new JTextField("0");
		Color BackColor = new Color(255, 255, 255);
		Color ForeColor = new Color(0, 0, 0);
		txtResult.setBackground(BackColor);
		txtResult.setForeground(ForeColor);

		panel.add(txtResult);
		txtResult.setHorizontalAlignment(JTextField.RIGHT);
		txtResult.setEnabled(false);
		// text.setEnabled(true);

		JPanel panel_1 = new JPanel(new GridLayout(1, 4));
		panel.add(panel_1);

		btnSqrt = new JButton("sqrt");
		panel_1.add(btnSqrt);
		btnSqrt.addActionListener(this);
		btnPlusMinus = new JButton("+/-");
		panel_1.add(btnPlusMinus);
		btnPlusMinus.addActionListener(this);
		btnCE = new JButton("CE");
		panel_1.add(btnCE);
		btnCE.addActionListener(this);
		btnC = new JButton("C");
		panel_1.add(btnC);
		btnC.addActionListener(this);

		JPanel panel_2 = new JPanel(new GridLayout(1, 4));
		panel.add(panel_2);

		btnSeven = new JButton("7");
		panel_2.add(btnSeven);
		btnSeven.addActionListener(this);
		btnEight = new JButton("8");
		panel_2.add(btnEight);
		btnEight.addActionListener(this);
		btnNine = new JButton("9");
		panel_2.add(btnNine);
		btnNine.addActionListener(this);
		btnDivided = new JButton("/");
		panel_2.add(btnDivided);
		btnDivided.addActionListener(this);

		JPanel panel_3 = new JPanel(new GridLayout(1, 4));
		panel.add(panel_3);

		btnFour = new JButton("4");
		panel_3.add(btnFour);
		btnFour.addActionListener(this);
		btnFive = new JButton("5");
		panel_3.add(btnFive);
		btnFive.addActionListener(this);
		btnSix = new JButton("6");
		panel_3.add(btnSix);
		btnSix.addActionListener(this);
		btnTimes = new JButton("*");
		panel_3.add(btnTimes);
		btnTimes.addActionListener(this);

		JPanel panel_4 = new JPanel(new GridLayout(1, 4));
		panel.add(panel_4);

		btnOne = new JButton("1");
		panel_4.add(btnOne);
		btnOne.addActionListener(this);
		btnTwo = new JButton("2");
		panel_4.add(btnTwo);
		btnTwo.addActionListener(this);
		btnThree = new JButton("3");
		panel_4.add(btnThree);
		btnThree.addActionListener(this);
		btnMinus = new JButton("-");
		panel_4.add(btnMinus);
		btnMinus.addActionListener(this);

		JPanel panel_5 = new JPanel(new GridLayout(1, 4));
		panel.add(panel_5);

		btnZero = new JButton("0");
		panel_5.add(btnZero);
		btnZero.addActionListener(this);
		btnPoint = new JButton(".");
		panel_5.add(btnPoint);
		btnPoint.addActionListener(this);
		btnEqual = new JButton("=");
		panel_5.add(btnEqual);
		btnEqual.addActionListener(this);
		btnPlus = new JButton("+");
		panel_5.add(btnPlus);
		btnPlus.addActionListener(this);

		str = new StringBuffer();

		this.setVisible(true);

	}

	public void windowClosing(WindowEvent a) {
		System.exit(0);
	}

	public void actionPerformed(ActionEvent e) {

		try {
			if (e.getSource() == btnC) {
				txtResult.setText("0");
				str.setLength(0);
			} else if (e.getSource() == btnCE) {
				txtResult.setText("0.");
				str.setLength(0);
			} else if (e.getSource() == btnPlusMinus) {
				x = Double.parseDouble(txtResult.getText().trim());
				txtResult.setText("" + (-x));
			}

			else if (e.getSource() == btnPlus) {
				x = Double.parseDouble(txtResult.getText().trim());
				str.setLength(0);
				y = 0d;
				z = 1;
			} else if (e.getSource() == btnMinus) {
				x = Double.parseDouble(txtResult.getText().trim());
				str.setLength(0);
				y = 0d;
				z = 2;
			} else if (e.getSource() == btnTimes) {
				x = Double.parseDouble(txtResult.getText().trim());
				str.setLength(0);
				y = 0d;
				z = 3;
			} else if (e.getSource() == btnDivided) {
				x = Double.parseDouble(txtResult.getText().trim());
				str.setLength(0);
				y = 0d;
				z = 4;
			} else if (e.getSource() == btnEqual) {
				str.setLength(0);
				switch (z) {
				case 1:
					txtResult.setText("" + (x + y));
					break;
				case 2:
					txtResult.setText("" + (x - y));
					break;
				case 3:
					txtResult.setText("" + (x * y));
					break;
				case 4:
					txtResult.setText("" + (x / y));
					break;
				}
			}

			else if (e.getSource() == btnPoint) {
				if (txtResult.getText().trim().indexOf('.') != -1)// 判断字符串中是否已经包含了小数点
				{

				} else// 如果没数点有小
				{
					if (txtResult.getText().trim().equals("0"))// 如果初时显示为0
					{
						str.setLength(0);
						txtResult.setText((str.append("0"
								+ e.getActionCommand())).toString());
					} else if (txtResult.getText().trim().equals(""))// 如果初时显示为空则不做任何操作
					{
					} else {
						txtResult.setText(str.append(e.getActionCommand())
								.toString());
					}
				}

				y = 0d;
			}

			else if (e.getSource() == btnSqrt)// 求平方根
			{
				x = Double.parseDouble(txtResult.getText().trim());
				txtResult.setText("数字格式异常");
				if (x < 0)
					txtResult.setText("负数没有平方根");
				else
					txtResult.setText("" + Math.sqrt(x));
				str.setLength(0);
				y = 0d;
			}

			else if (e.getSource() == btnZero)// 如果选择的是"0"这个数字键
			{
				if (txtResult.getText().trim().equals("0"))// 如果显示屏显示的为零不做操作
				{
				} else {
					txtResult.setText(str.append(e.getActionCommand())
							.toString());
					y = Double.parseDouble(txtResult.getText().trim());
				}
			}

			else// 其他的数字键
			{
				txtResult.setText(str.append(e.getActionCommand()).toString());
				y = Double.parseDouble(txtResult.getText().trim());
			}
		} catch (NumberFormatException ae) {
			txtResult.setText("数字格式异常");
		} catch (StringIndexOutOfBoundsException ae) {
			txtResult.setText("字符串索引越界");
		}

	}

	public static void main(String arg[]) {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
			e.printStackTrace();
		} 
		new Calculator();
	}

}

 

分享到:
评论
1 楼 lvjinhua 2009-11-24  
好,不错,谢谢了啊

相关推荐

    Java swing编写的计算器界面.zip

    最后,记得将所有组件添加到JFrame中,并调用`setVisible(true)`方法显示窗口,这样就完成了一个基本的Java Swing计算器应用。 通过学习这个示例,开发者不仅可以掌握Java Swing的基本用法,还能了解GUI编程的设计...

    swing计算器,swing计算器 swing计算器

    Swing计算器是一款基于Java Swing库开发的简单计算工具。Swing是Java的一种图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,主要用于构建桌面应用程序。本项目的核心在于利用Swing组件来...

    java Swing实现计算器源码

    java Swing实现计算器源码

    Swing版简单计算器

    Swing版的简单计算器,实现加减乘除,第一次写,希望大家给点建议。

    javaswing简易计算器

    使用java swing 编写的计算器,可提高初学者对gui的理解!

    java swing 实现计算器源码

    在这个"java swing 实现计算器源码"项目中,开发者使用Swing构建了一个计算器应用程序,尽管未经过全面测试,但理论上应该能够正常运行。 Swing 提供了一系列的组件,如 JButton、JLabel、JTextField 等,这些组件...

    java Swing简单计算器

    t e){ d.dispose();}});cc.add(t4);cc.add(db1);cc.add(db2);d.pack();d.show();}});b3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){t3.setText("按钮3被点击了!...

    swing简易计算器

    Swing简易计算器是一款基于Java Swing库开发的桌面应用程序,它提供了基本的计算功能,适合初学者学习和日常简单计算需求。在Java编程中,Swing是用于构建图形用户界面(GUI)的重要工具,它提供了丰富的组件和事件...

    java(swing)计算器

    Java Swing 计算器是一个...总的来说,Java Swing计算器是一个很好的学习项目,它涵盖了GUI编程的基本概念,同时也能帮助初学者提升问题解决和代码组织能力。通过实践,你可以逐步掌握Java Swing开发桌面应用的技巧。

    java swing 做得计算器 功能齐全

    用java swing 做得计算器 有注释

    基于Java swing组件实现简易计算器

    "基于Java swing组件实现简易计算器" 本文主要介绍了基于Java swing组件实现简易计算器的知识点,以下是相关知识点的总结: 1. JFrame组件:JFrame是Java swing组件中的一种顶层容器,用于创建一个窗口框架。通过...

    swing实现计算器功能

    通过以上步骤,一个基本的Swing计算器应用就实现了。在实际项目中,我们还可能考虑增加错误处理(如除数为零)、输入验证(防止非法字符输入)等功能,以提高用户体验和程序的健壮性。理解并实践这些知识点对于提升...

    java swing 图形计算器

    java swing 图形计算器,支持加减乘除计算,可作为java课程上机实验参考

    Java Swing版本计算器

    这个项目“Java Swing版本计算器”是一个基于Java Swing开发的简单计算器应用,它实现了基本的数学运算,包括加法、减法、乘法和除法。对于初学者来说,这是一个很好的实践项目,因为它的代码注释详尽,便于理解。 ...

    java swing 实现的计算器

    用swing实现的计算器,未经测试,但可实现计算功能

    java swing写的计算器

    java swing做的计算器,不能连续运算xxxxxxxxxxxxxxxxxxxx

    JAVA Swing简易科学计算器

    JAVA Swing简易科学计算器是一款基于JAVA Swing开发的图形用户界面(GUI)应用,主要设计用于执行基本数学运算以及一些更复杂的科学计算,如三角函数和二进制转换。它作为一个JAVA大作业,展示了开发者对JAVA GUI...

    java swing界面做的计算器

    用java swing界面做的计算器,能连续加减乘除,功能基本到位

    Swing实现一个简单的计算器

    Swing实现简单计算器的关键技术点 1. Swing 组件 在这个简单计算器的实现中,我们使用了多种 Swing 组件,包括 JFrame、JPanel、JLabel、JButton 和 JTextField。这些组件都是 Java 中用于构建图形用户界面的基础...

    Java Swing计算器

    Java Swing计算器是一个基于Java GUI库Swing开发的桌面应用程序,用于执行基本的数学运算,如加、减、乘、除。这个项目对于学习Java GUI编程和Swing组件的使用非常有帮助,尤其适合Java初学者作为期末课程设计的实践...

Global site tag (gtag.js) - Google Analytics