这篇文章主要为大家展示了“如何使用Java图形化界面编程实现简单计算器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Java图形化界面编程实现简单计算器”这篇文章吧。
使用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图形化界面编程实现简单计算器”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。