千家信息网

如何使用Java图形化界面编程实现简单计算器

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"如何使用Java图形化界面编程实现简单计算器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用Java图形化界面编程实现简单
千家信息网最后更新 2026年11月02日如何使用Java图形化界面编程实现简单计算器

这篇文章主要为大家展示了"如何使用Java图形化界面编程实现简单计算器",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用Java图形化界面编程实现简单计算器"这篇文章吧。

1.简单计算器

使用AWT编程,FrameNORTH区域放置TextField组件,将指定为4行5列GridLayout布局管理器的Panel放置于Frame中部区域,其中填充操作符和操作数按钮。
 按钮触发事件源,对按钮添加ActionListener注册监听。自定义NumListener(操作数监听类)、OperatListener(操作符监听类)、EqualListener("="符监听类)和匿名内部类(如b[11]’-'符监听类)分情况对按钮事件进行监听并响应。
注意:整数、浮点、负数以及连续运算均可以。

界面效果:

简单计算一下 -12 + 3 = -9

代码:

import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import static java.awt.Color.blue;public class Calculation {    //操作数    double x,y;    String op;    boolean flag;    Frame frame = new Frame("智子的计算器!");    TextField tf = new TextField(30);    Button[] b = new Button[20];    public void init(){        //北部区域放置文本框        frame.add(tf,BorderLayout.NORTH);        Panel panel = new Panel();        panel.setLayout(new GridLayout(4,5,2,2));        //设置按钮        String s = "+-*/%";        for(int i=0;i<10;i++) {//运算数            b[i] = new Button(i + "");            b[i].setForeground(blue);        }        for(int i=0;i<5;i++) {//运算符            b[i+10]=new Button(s.charAt(i)+"");            b[i+10].setForeground(blue);        }        String[] t = {"sqrt","^2","^3","=","."};        for(int i=0;i<5;i++){            b[i+15]=new Button(t[i]);            b[i+15].setForeground(blue);        }        //按钮注册监听        for (int i = 0; i < 10; i++) {//操作数注册监听            b[i].addActionListener(new NumListener());        }        for (int i = 10; i < 18; i++) {//操作符注册监听            if(i==11) continue;            b[i].addActionListener(new OperatListener());        }        b[11].addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                if(!flag){                    tf.setText("-");                    flag = true;                } else {                    x = Double.parseDouble(tf.getText());                    op = e.getActionCommand();                    flag = false;                }            }        });        //"="注册监听        b[18].addActionListener(new EqualListener());        //"."注册监听        b[19].addActionListener(new NumListener());        //将按钮加入panel        for (int i = 0; i < 20; i++) {            panel.add(b[i]);        }        //设置中部按钮        frame.add(panel);        //窗口监听器 注册监听        frame.addWindowListener(new WindowAdapter() {            @Override            public void windowClosing(WindowEvent e) {                System.exit(0);            }        });        //设置窗口最优并可见        frame.pack();        frame.setVisible(true);    }    //数字按钮监听器类    public class NumListener implements ActionListener{        @Override        public void actionPerformed(ActionEvent e) {            String t = e.getActionCommand();            String s = tf.getText();            if(flag==false)                tf.setText(t);            else                tf.setText(s+t);            flag = true;        }    }    //操作符按钮监听器类    public class OperatListener implements ActionListener{        @Override        public void actionPerformed(ActionEvent e) {            x = Double.parseDouble(tf.getText());            op = e.getActionCommand();            flag = false;        }    }    //等号按钮监听器类    public class EqualListener implements ActionListener{        @Override        public void actionPerformed(ActionEvent e) {            y = Double.parseDouble(tf.getText());            flag = true;            switch(op){                case "+":tf.setText(x+y+"");                    break;                case "-":tf.setText(x-y+"");                    break;                case "*":tf.setText(x*y+"");                    break;                case "/":                    if(y!=0)                        tf.setText(x/y+"");                    else                        tf.setText("inf");                    break;                case "%":tf.setText(x%y+"");                    break;                case "sqrt":tf.setText((int)Math.sqrt(x)+"");                    break;                case "^2":tf.setText(y*y+"");                    break;                case "^3":tf.setText(y*y*y+"");                    break;            }        }    }    public static void main(String[] args) {        new Calculation().init();    }}

以上是"如何使用Java图形化界面编程实现简单计算器"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

监听 按钮 计算器 界面 编程 操作数 操作符 监听器 图形 内容 区域 篇文章 运算 事件 学习 帮助 代码 布局 情况 效果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 广州紫鲸互联网科技有限公司 互联网科技公司华为 互联网科技行业发展 互联网科技英文 中国互联网科技发展 北京互联网络科技有限公司 云创客互联网科技公司 互联网汽车科技小镇 青岛中康互联网医疗科技有限公司 阿里巴巴算科技企业还是互联网 科技大学互联网 杭州披云加互联网科技有限公司 城市宝互联网科技有限公司 互联网营销推广黑科技 浙南科技城互联网大厦招聘 富国互联网科技002692 中国新注册互联网科技 科技互联网企业在行动 颐高云石互联网科技 科技平台互联网 中国 科技 互联网 浩特互联网科技 成都互联网科技公司100强 湖南诚度互联网科技有限公司 花神(南京)互联网科技有限公司 深圳无忧互联网科技 新氧科技和美国互联网有关系吗 长沙易易互联网科技有限公司 山东亿川互联网科技有限责任公司
0