JAVA编写有图形化界面的计算器

本文介绍了使用JAVA编写具有图形化界面的计算器的过程,包括四则运算、负数和小数运算、退格、清除、归零、开根号、百分号和倒数等功能。文章详细阐述了代码实现,特别是如何通过StringBuffer存储数字和运算结果,以及利用标记来处理运算过程中的逻辑。此外,还分享了作者作为初学者在编写过程中遇到的挑战和学习心得。
摘要由CSDN通过智能技术生成

JAVA编写有图形化界面的计算器

目录

计算器功能

  • 加减乘除四则运算
  • 负数和小数运算
  • 退格、清除和归零
  • 开根号
  • 百分号
  • 倒数

代码块

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

public class Test {
   

    TextField tf = new TextField(40);       //显示文本框
    StringBuffer s1 = new StringBuffer();   //记录运算数字,以及保留结果
    StringBuffer s2 = new StringBuffer();   //记录运算数字,保留上一个输入的数字或运算结果
    static String flag = new String();      //标记运算符号:+,-,*,/
    boolean start = true;   //标记运算开始或结束,保证一次运算之后,第二次进行运算时能同时清空显示界面,即s1为空

    public void init(){
        //主界面
        JFrame f = new JFrame("计算器");
        JPanel p1 = new JPanel();
        p1.add(tf);
        f.add(p1,BorderLayout.NORTH);
        JPanel p2 = new JPanel();
        p2.setLayout(new GridLayout(1,3));
        //动作监听器
        ActionListener listen =new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {

                //输入数字0~9
                if(arg0.getActionCommand()=="0"){

                    if(!s1.toString().equals(new String())){
                        if(!start){
                            //s1清零,保证可以重新输入数字
                            s1.delete(0, s1.length());
                        }
                        start = true;
                        tf.setText(s1.append("0").toString());
                    }   
                }
                if(arg0.getActionCommand()=="1"){
                    if(!start){
                        s1.delete(0, s1.length());
                    }
                    start = true;
                    tf.setText(s1.append("1").toString());
                }
                if(arg0.getActionCommand()=="2"){
                    if(!start){
                        s1.delete(0, s1.length());
                    }
                    start = true;
                    tf.setText(s1.append("2").toString());
                }
                if(arg0.getActionCommand()=="3"){
                    if(!start){
                        s1.delete(0, s1.length());
                    }
                    start = true;
                    tf.setText(s1.append("3").toString());
                }
                if(arg0.getActionCommand()==
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值