直接上代码:
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();
}
}
分享到:
相关推荐
最后,记得将所有组件添加到JFrame中,并调用`setVisible(true)`方法显示窗口,这样就完成了一个基本的Java Swing计算器应用。 通过学习这个示例,开发者不仅可以掌握Java Swing的基本用法,还能了解GUI编程的设计...
Swing计算器是一款基于Java Swing库开发的简单计算工具。Swing是Java的一种图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,主要用于构建桌面应用程序。本项目的核心在于利用Swing组件来...
java Swing实现计算器源码
Swing版的简单计算器,实现加减乘除,第一次写,希望大家给点建议。
使用java swing 编写的计算器,可提高初学者对gui的理解!
在这个"java swing 实现计算器源码"项目中,开发者使用Swing构建了一个计算器应用程序,尽管未经过全面测试,但理论上应该能够正常运行。 Swing 提供了一系列的组件,如 JButton、JLabel、JTextField 等,这些组件...
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简易计算器是一款基于Java Swing库开发的桌面应用程序,它提供了基本的计算功能,适合初学者学习和日常简单计算需求。在Java编程中,Swing是用于构建图形用户界面(GUI)的重要工具,它提供了丰富的组件和事件...
Java Swing 计算器是一个...总的来说,Java Swing计算器是一个很好的学习项目,它涵盖了GUI编程的基本概念,同时也能帮助初学者提升问题解决和代码组织能力。通过实践,你可以逐步掌握Java Swing开发桌面应用的技巧。
用java swing 做得计算器 有注释
"基于Java swing组件实现简易计算器" 本文主要介绍了基于Java swing组件实现简易计算器的知识点,以下是相关知识点的总结: 1. JFrame组件:JFrame是Java swing组件中的一种顶层容器,用于创建一个窗口框架。通过...
通过以上步骤,一个基本的Swing计算器应用就实现了。在实际项目中,我们还可能考虑增加错误处理(如除数为零)、输入验证(防止非法字符输入)等功能,以提高用户体验和程序的健壮性。理解并实践这些知识点对于提升...
java swing 图形计算器,支持加减乘除计算,可作为java课程上机实验参考
这个项目“Java Swing版本计算器”是一个基于Java Swing开发的简单计算器应用,它实现了基本的数学运算,包括加法、减法、乘法和除法。对于初学者来说,这是一个很好的实践项目,因为它的代码注释详尽,便于理解。 ...
用swing实现的计算器,未经测试,但可实现计算功能
java swing做的计算器,不能连续运算xxxxxxxxxxxxxxxxxxxx
JAVA Swing简易科学计算器是一款基于JAVA Swing开发的图形用户界面(GUI)应用,主要设计用于执行基本数学运算以及一些更复杂的科学计算,如三角函数和二进制转换。它作为一个JAVA大作业,展示了开发者对JAVA GUI...
用java swing界面做的计算器,能连续加减乘除,功能基本到位
Swing实现简单计算器的关键技术点 1. Swing 组件 在这个简单计算器的实现中,我们使用了多种 Swing 组件,包括 JFrame、JPanel、JLabel、JButton 和 JTextField。这些组件都是 Java 中用于构建图形用户界面的基础...
Java Swing计算器是一个基于Java GUI库Swing开发的桌面应用程序,用于执行基本的数学运算,如加、减、乘、除。这个项目对于学习Java GUI编程和Swing组件的使用非常有帮助,尤其适合Java初学者作为期末课程设计的实践...