作为初学者总想写点可行的东西, 但是总也是四处碰壁!
要知道,只有在逆境中才能磨练自己!
自信点,勇于去面对错误,找出原因,就是进步!
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
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.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class JSanQi implements ActionListener {
JFrame f1;
JPanel p1, p2, p3;
JTextField t1;
JButton bt[];
JButton bdoc, bexit, back, bzero, badd, bsub, bmul, bdiv, bcanl, bequl;
boolean Key;
JMenuBar menu;
JMenu m1;
JMenuItem mt1, mt2;
Double fnum;
int key, doc;
@SuppressWarnings("deprecation")
public JSanQi() {
fnum = 0.0;
Key = true;
doc = 0;
f1 = new JFrame("My Calculator!");
f1.setLayout(new BorderLayout());
p1 = new JPanel();
p2 = new JPanel();
p3 = new JPanel();
t1 = new JTextField();
menu = new JMenuBar();
m1 = new JMenu("file");
mt1 = new JMenuItem("nihao!");
mt2 = new JMenuItem("exit!");
t1.setEditable(false);
t1.setBackground(new Color(205,201,120));
f1.add(p2, BorderLayout.NORTH);
f1.add(p1);
p2.setLayout(new FlowLayout());
p2.add(menu, FlowLayout.LEFT);
menu.add(m1);
m1.add(mt1);
m1.add(mt2);
mt1.addActionListener(this);
mt2.addActionListener(this);
p1.setLayout(new BorderLayout());
p1.add(t1, BorderLayout.NORTH);
p1.add(p3);
bt = new JButton[10];
for (int i = 0; i < 10; i++) {
bt[i] = new JButton(Integer.toString(i));
}
bdoc = new JButton(".");
bexit = new JButton("Exit!");
back = new JButton("Back!");
back.setForeground(new Color(255, 0, 0));
bexit.setForeground(new Color(0, 0, 255));
bexit.setBackground(new Color(120,120,225));
bzero = new JButton("00");
badd = new JButton("+");
bsub = new JButton("-");
bmul = new JButton("*");
bdiv = new JButton("/");
bcanl = new JButton("EC");
bequl = new JButton("=");
//bequl.setLabel("123");
//bequl.addNotify();
p3.setLayout(new GridLayout(4, 5));
p3.add(bt[1]);
p3.add(bt[2]);
p3.add(bt[3]);
p3.add(badd);
p3.add(bsub);
p3.add(bt[4]);
p3.add(bt[5]);
p3.add(bt[6]);
p3.add(bmul);
p3.add(bdiv);
p3.add(bt[7]);
p3.add(bt[8]);
p3.add(bt[9]);
p3.add(back);
p3.add(bequl);
p3.add(bt[0]);
p3.add(bzero);
p3.add(bdoc);
p3.add(bcanl);
p3.add(bexit);
bt[0].addActionListener(this);
bt[1].addActionListener(this);
bt[2].addActionListener(this);
bt[3].addActionListener(this);
bt[4].addActionListener(this);
bt[5].addActionListener(this);
bt[6].addActionListener(this);
bt[7].addActionListener(this);
bt[8].addActionListener(this);
bt[9].addActionListener(this);
bdoc.addActionListener(this);
bexit.addActionListener(this);
back.addActionListener(this);
bzero.addActionListener(this);
badd.addActionListener(this);
bsub.addActionListener(this);
bmul.addActionListener(this);
bdiv.addActionListener(this);
bcanl.addActionListener(this);
bequl.addActionListener(this);
f1.setSize(290, 220);
f1.pack();
f1.setVisible(true);
}
public static void main(String[] args) {
new JSanQi();
}
public void actionPerformed(ActionEvent event) {
Object temp = event.getSource();
try {
for (int i = 0; i < 10; i++) {
if (temp == bt[i] && Key == true) {
t1.setText(t1.getText() + Integer.toString(i));
}
}
if (temp == badd || temp == bsub || temp == bmul || temp == bdiv) {
if (temp == badd && Key == true) {
key = 1;
fnum = Double.parseDouble(t1.getText());
// t1.setText(t1.getText()+fnum);
}
if (temp == bsub && Key == true) {
key = 2;
fnum = Double.parseDouble(t1.getText());
}
if (temp == bmul && Key == true) {
key = 3;
fnum = Double.parseDouble(t1.getText());
}
if (temp == bdiv && Key == true) {
if (Double.parseDouble(t1.getText()) == 0) {
t1.setText("Wrong action!");
} else {
key = 4;
fnum = Double.parseDouble(t1.getText());
}
}
t1.setText("");
doc=0;
}
if (temp == bequl && Key == true) {
switch (key) {
case 1:
fnum += Double.parseDouble(t1.getText());
t1.setText(Double.toString(fnum));
break;
case 2:
fnum -= Double.parseDouble(t1.getText());
t1.setText(Double.toString(fnum));
break;
case 3:
fnum *= Double.parseDouble(t1.getText());
t1.setText(Double.toString(fnum));
break;
case 4:
fnum /= Double.parseDouble(t1.getText());
t1.setText(Double.toString(fnum));
break;
default:
break;
}
doc=0;
}
if (temp == bcanl) {
t1.setText("");
Key = true;
doc=0;
}
if (temp == bexit || temp == mt2) {
System.exit(0);
}
if (temp == bzero && Key==true) {
t1.setText(t1.getText() + "00");
//doc=0;
}
if (temp == mt1) {
JOptionPane.showMessageDialog(p1, "How Are You!\n"
+ "Architect Is Topwise ^_^");
}
if (temp == bdoc && Key==true) {
if (doc == 0) {
t1.setText(t1.getText() + ".");
}
if(doc==1) {
t1.setText("Wrong Action");
Key = false;
doc = 0;
}
doc = 1;
}
if (temp==back && Key==true){
}
} catch (Exception e) {
t1.setText("Wrong Action!");
Key = false;
}
}
}
还有点未完善,可以试着自己做好!
分享到:
- 2008-04-25 20:10
- 浏览 751
- 评论(0)
- 论坛回复 / 浏览 (0 / 1622)
- 查看更多
相关推荐
【标题】:“C# 多功能计算器”是一个基于C#编程语言实现的计算器软件,它扩展了基础计算功能,提供了多种运算模式,如标准计算、科学计算等,以满足用户在不同场景下的需求。 【描述】:这个项目的核心是利用C#的...
使用labview搭建的一个计算器例子,对于初学者来说有一定的参考价值。
用c++实现计算器的简单功能,运用switch和if.....elseif....else实现加减乘除和开方
在这个场景中,我们讨论的是一个使用MFC实现的简单计算器程序。 **MFC计算器的设计与实现:** 1. **框架结构**:MFC计算器通常基于MFC的框架结构,包括视图(View)、文档(Document)、框架窗口(Frame Window)...
《基于51单片机的多功能计算器设计》 在电子技术领域,51单片机是一种广泛应用的微控制器,以其简单易用、功能强大而深受工程师喜爱。本设计旨在利用51单片机构建一个具备多种计算功能的计算器,不仅能够进行基本的...
不仅如此,"多功能计算器 万能计算器"往往还具备自定义功能,用户可以根据自己的需求设置常量、单位转换,甚至编写简单的计算程序,让计算过程更加个性化和高效。对于那些需要处理特定计算问题的用户来说,这是一个...
本篇文章将深入探讨如何使用51单片机实现一个简易计算器的功能,这通常涉及硬件接口、软件编程以及人机交互设计。 首先,我们要理解51单片机的基本结构。51系列单片机由Intel公司开发,具有8位CPU,内部集成RAM、...
《基于51单片机的多功能计算器设计》 在电子技术领域,51单片机是一种广泛应用的微控制器,以其简单易用、功能强大而深受工程师喜爱。本项目旨在利用51单片机设计一款具备多种计算功能的计算器,不仅能满足基本的加...
【标题】"基于jQuery/JS的简易网页计算器"揭示了这个项目的核心——使用JavaScript和jQuery技术来实现一个基本的在线计算功能。JavaScript是一种在客户端浏览器上运行的脚本语言,常用于网页交互和动态效果的实现,...
在这个项目中,它被用来实现一个简易计算器,具备基本的数学运算功能。计算器的核心设计包括4x4键盘输入以及点阵字符型液晶显示。 在计算能力方面,由于受到浮点程序库的限制,该计算器的浮点运算采用3字节的二进制...
66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51...
《多功能简易计算器程序仿真》 在信息技术领域,计算器软件是一种常见的工具,用于执行基本到复杂的数学运算。本项目“多功能简易计算器程序仿真”旨在提供一个用户友好的界面,实现多种计算功能,包括基础算术运算...
在本项目中,我们讨论的是一个使用Java编程语言编写的简易计算器程序。这个计算器程序具有基本的四则运算功能,并且源代码中包含了详细的注释,便于初学者理解和学习。 首先,我们需要理解Java编程基础。Java是一种...
**基于LabVIEW编写的简易计算器** LabVIEW,全称Laboratory Virtual Instrument Engineering Workbench,是一款由美国国家仪器(NI)公司开发的图形化编程环境,主要用于创建虚拟仪器、数据采集和控制系统的应用...
【简易多功能计算器,完整版】是一款专为用户提供便捷计算服务的应用程序,它的设计目标是解决传统计算器在进行连续加减乘除操作时可能存在的输入不便和错误率高的问题。这款计算器是作者亲自编写的,作者认为这可能...
【标题】:“MFC简易计算器(有除零报错功能)” 这个项目是基于MFC(Microsoft Foundation Classes)框架开发的一个简易计算器应用。MFC是微软提供的C++库,用于构建Windows应用程序,它封装了Windows API,使得...
【标签】"C# 多功能计算器"表明这个项目的核心技术和应用领域,C#语言的特性使得它可以轻松地创建图形用户界面(GUI),并结合.NET框架提供丰富的类库支持,使得开发这样一个计算器变得更加简单。多功能计算器则意味...
根据提供的文件名"计算器",我们可能假设这是一个包含Java源代码的文件,可能是实现了上述功能的一个类或一个简单的程序。如果是一个类,它可能命名为`Calculator.java`,并包含一个`Calculator`类,其中定义了计算...
JAVA Swing简易科学计算器是一款基于JAVA Swing开发的图形用户界面(GUI)应用,主要设计用于执行基本数学运算以及一些更复杂的科学计算,如三角函数和二进制转换。它作为一个JAVA大作业,展示了开发者对JAVA GUI...
### Java多功能计算器源代码解析 #### 一、项目概述 根据提供的信息,这段代码实现了一个基于Java Swing的图形用户界面(GUI)的多功能计算器。该计算器不仅具备基本的计算功能,还提供了更多高级功能,例如科学...